Seite 1 von 1

100 % CPU-Auslastung

Verfasst: Do, 27. Jun 2013 8:44
von Rolf Ramacher
Ich habe noch ein paar alte Clipperprogramme die unter Win7 32-Bit laufen. diese ziehen aber die CPU auf 100 %. Hat jemand einen tipp, wie ich diese ausschalten, bzw. reduzieren kann.

Re: 100 % CPU-Auslastung

Verfasst: Do, 27. Jun 2013 9:07
von Tom

Re: 100 % CPU-Auslastung

Verfasst: Do, 27. Jun 2013 9:10
von georg
Hallo, Rolf -


schau mal in die GetSys rein. Da wirst meist mit Inkey() operiert, und das zieht die CPU runter (bzw. die Auslastung hoch), da Clipper-Programme nie was davon gehört haben, dass auch andere die CPU brauchen könnten.

Du solltest das auf Inkey(0.1) ändern (siehe auch ftp://ftp.alaska-software.com/acsn/cliputil.zip über die DBU/RLU Portierung, da wird auch darauf eingegangen).

Re: 100 % CPU-Auslastung

Verfasst: Do, 27. Jun 2013 10:13
von BJelinek
Hallo Rolf,
ich benutze die oslib.lib 1.06 und die Blinker 7 Function BLICPUREL()
gemeinsam.

Code: Alles auswählen

FUNC BFBInkey(xx)
LOCAL nKey := 0
if    xx == Nil .OR. valType(xx) <> "N"
 BFBYield(3)        // OL_Yield()
 nKey := INKEY()
elseif xx <> 0
 BFBYield(3)        // OL_Yield()
 nKey := INKEY(abs(xx))
else
 do while ( ( nKey := INKEY(.1) ) == 0 )
  BFBYield(3)        // OL_Yield()
 enddo
*INKEY(0)
endif
RETURN nKey

FUNC BFBYield( nModus )
static lMitOsLib
local xRet := NIL
if lMitOsLib = nil
 BLICPUREL()
 lMitOsLib := .t.
 if .not. BFBWINNT()
  lMitOsLib := .f.
 endif
 if lMitOsLib
  privat cWAWISETI,TT
  cWAWISETI := "WAWI_SET.INI"
  if file(cWAWISETI)
   TT := memoread(cWAWISETI)
   TT := STRTRAN(TT," ")
   TT := upper(TT)
   IF "BFBCPUMIN=N" $ TT
    lMitOsLib := .f.
   endif
  endif
 endif
 IF lMitOsLib
  IF upper(GETE("BFBCPUMIN"))="N"
   lMitOsLib := .f.
  endif
 endif
endif
if lMitOsLib
 if     nModus = 0
  OL_AutoYield( .f. )
 elseif nModus = 1
  OL_AutoYield( .t. )
 elseif nModus = 3
  xRet := OL_Yield()
 endif
endif
return xRet
Vor dbedit() und achoise() ein bfbyield(1) und danach wieder aus bfbyield(0)

INKEY wird durch bfbinkey ersetzt

Beim Start der der DOS-Box weise ich Ihr abwechselnd eine CPU zu (Wenn mehrere vorhanden).
Verteilt die Last wenn man das Programm mehrfach öffnet.