| |
|
|
p.specht
| qui API-Funktionen QueryPerformanceCounter() verwendet 64-Bit-unsigned Integers. dans XProfan11 gab´s qui encore pas. Nachstehende Bastelei sollte là abhelfen - cela KANN marcher ou bien Müll son, je n'en sais rien! sans chacun Gewähr:
Windowtitle "CPU Performance Counters z.B. pour Benchmark Tests auslesen (ab Profan 9 sous XP)"
Déclarer Frequenz&[1],Start&[1],Ende&[1],Test&[1]
Déclarer Frequenz!,Start!,Ende!,Test!,Sekunden!,Durchläufe&
Def QueryPerformanceFrequency(1), !"Kernel32", "QueryPerformanceFrequency"
Def QueryPerformanceCounter(1) !"Kernel32", "QueryPerformanceCounter"
QueryPerformanceFrequency(Addr(Frequenz&[0]))
CLS:Font 2:Sleep 500
Frequenz! = si(Frequenz&[1]<0,Frequenz&[1]+2^32,Frequenz&[1])*2^32 + \
si(Frequenz&[0]<0,Frequenz&[0]+2^32,Frequenz&[0])
imprimer "\n\n CPU-Frequenz: ";Frequenz!*10^-6;" [GHz]"
imprimer "\n-----------------------------------------------------------"
Durchläufe&=2*10^6
imprimer "\n Test gestartet pour ";format$("###,###,###,###",Durchläufe&);" Durchläufe..."
'-------------------------------------------------------------------
QueryPerformanceCounter(Addr(Start&[0]))
WhileLoop Durchläufe&
'
' ICI KOMMT DER ZU BENCHMARKENDE PROGRAMMTEIL REIN!!!
'
Endwhile
QueryPerformanceCounter(Addr(Ende&[0]))
'-------------------------------------------------------------------
Ende! = si(Ende&[1]<0,Ende&[1]+2^32,Ende&[1])*2^32+si(Ende&[0]<0,Ende&[0]+2^32,Ende&[0])
Start! = si(Start&[1]<0,Start&[1]+2^32,Start&[1])*2^32+si(Start&[0]<0,Start&[0]+2^32,Start&[0])
imprimer "\n-----------------------------------------------------------"
beep:imprimer " Test finissez."
Test!=Ende!-Start!:Sekunden! = Test!/Frequenz!
Imprimer "\n\n Gesamtdauer: ";format$("%g",Sekunden!);" Sekunden"
Imprimer "\n la durée je Durchlauf: ";format$("%g",10^6*Sekunden!/Durchläufe&);" Mikrosekunden"
Imprimer "\n cela entspricht rund ";format$("###,###,##0",Durchläufe&/Sekunden!);" Durchläufen pro seconde."
imprimer "\n-----------------------------------------------------------"
Imprimer "\n\n finissons avec Tastendruck!"
WaitInput 1000*60*5
Fin
|
|
|
| Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 11.05.2021 ▲ |
|
|
|