Seite 1 von 1

PBOSL_CPUmonitor ( CpuUsage() ) für 64Bit Windows ?

Verfasst: 19.10.2012 10:19
von TheCube
Hallo,
ich habe da mal eine Frage zu der (von mir oft und gern genutzten) Funktion CpuUsage().
Ich nutze auf einem Win-32 ein PB-32 und erzeuge eine Exe aus untenstehendem Testprogramm.
Die Exe läuft soweit auf Win-32 und auch auf Win-64, aber CpuUsage() gibt unter Win-64
immer nur den Wert -1 zurück.

Hat die etwas ältere Userlib PBOSL_CPUmonitor ein 64Bit-Problem, oder kann ich etwas besser machen ?
(Achso .... in die Sourcen habe ich mir angeschaut, ich kann da mangels Verständnis nichts updaten)

Grüsse.

Code: Alles auswählen

; -- Testprogramm (Basiert auf dem PBOSL-Example CPU2.pb)
Global Dim Progress.l(34)

Procedure updateCPUgadget()
   For a = 1 To 34 : Progress(a-1) = Progress(a) : Next a
   Progress(34) = CpuUsage()
   For a = 0 To 34 : SetGadgetState(a,Progress(a)):Next a
   SetWindowTitle(1, "CPU Monitor   "+ Str(Progress(34)) + " %")
EndProcedure

hWnd = OpenWindow(1,100,100,255,100,"CPU Monitor",#PB_Window_SystemMenu)
SetWindowPos_(hWnd,#HWND_TOPMOST,0,0,0,0,#SWP_NOACTIVATE|#SWP_SHOWWINDOW|#SWP_NOMOVE|#SWP_NOSIZE)
For a = 0 To 34 : ProgressBarGadget(a,a*7,0,8,100,0,100,#PB_ProgressBar_Vertical) : Next a
SetThreadPriority_( GetCurrentThread_() , #THREAD_BASE_PRIORITY_MAX)
SetPriorityClass_(  GetCurrentProcess_(), #HIGH_PRIORITY_CLASS)

StartTimer(1,500,@updateCPUgadget())
   
Repeat: Until WaitWindowEvent() = #PB_Event_CloseWindow

EndTimer(1) : Delay(310) 
End

Re: PBOSL_CPUmonitor ( CpuUsage() ) für 64Bit Windows ?

Verfasst: 19.10.2012 10:36
von Danilo
CPU Usage Multi-core? (im ASCII-Modus kompilieren)

Re: PBOSL_CPUmonitor ( CpuUsage() ) für 64Bit Windows ?

Verfasst: 19.10.2012 18:18
von TheCube
Schonmal guter aktueller Link zu sehr gutem Code .... danke dafür. 8)

Von einigen älteren Multicore-CpuUsage-Ansätzen war ich nämlich nicht so begeistert
(z.B. Messwerte stimmten nicht nach Integration ins eigene Programm etc.) wohingegen PBOSL-CpuUsage() immer fluffig lief.
(Anm.: Die Auslastung der einzelnen Cores war und ist mir bislang auch nicht wichtig)

Na dann wird ich mal anfangen den Code in mein Programm zu bringen ... schaumermal ...
und vielleicht tut sich ja trotzdem noch was beim PBOSL-CpuUsage()-Assemblercode :(