da ich noch relativer PureBasic-Noob bin wollt ich fragen, was ihr bei diesem Code noch ändern würdet, damit er besser läuft ...
... bei mir läuft er, bei meinem Freund nicht

EDIT: So jetzt funktionierts mit dieser Prozedur

Code: Alles auswählen
Procedure.l CalcCPUSpeed()
DelayTime = 500
TimerHi = 0
TimerLo = 0
PriorityClass = GetPriorityClass_(GetCurrentProcess_())
Priority = GetThreadPriority_(GetCurrentThread_())
SetPriorityClass_(GetCurrentProcess_(),100)
SetThreadPriority_(GetCurrentThread_(),15)
Sleep_(10)
!CPUID
!DW 310Fh ; rdtsc
MOV TimerLo, EAX
MOV TimerHi, EDX
Sleep_(DelayTime)
!CPUID
!DW 310Fh
SUB EAX, TimerLo
SUB EDX, TimerHi
MOV TimerLo, EAX
MOV TimerHi, EDX
SetPriorityClass_(GetCurrentProcess_(),Priority)
SetThreadPriority_(GetCurrentThread_(),PriorityClass)
ProcedureReturn (TimerLo / (1000.0 * DelayTime))
EndProcedure