| |
|
|
p.specht
| El API-Características QueryPerformanceCounter() verwendet 64-Bit-unsigned Integers. In XProfan11 gab´s el todavía no. Nachstehende Bastelei debería como abhelfen - el KANN klappen oder Müll ser, ni idea! Ohne jede Gewähr:
Windowtitle "CPU Performance Counters z.B. para Benchmark Tests auslesen (de Profano 9 bajo XP)"
Declarar Frequenz&[1],Start&[1],Ende&[1],Test&[1]
Declarar 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! = if(Frequenz&[1]<0,Frequenz&[1]+2^32,Frequenz&[1])*2^32 + \
if(Frequenz&[0]<0,Frequenz&[0]+2^32,Frequenz&[0])
imprimir "\n\n CPU-Frequenz: ";Frequenz!*10^-6;" [GHz]"
imprimir "\n-----------------------------------------------------------"
Durchläufe&=2*10^6
imprimir "\n Test comenzó para ";format$("###,###,###,###",Durchläufe&);" Durchläufe..."
'-------------------------------------------------------------------
QueryPerformanceCounter(Addr(Start&[0]))
WhileLoop Durchläufe&
'
' HIER KOMMT DER ZU BENCHMARKENDE PROGRAMMTEIL REIN!!!
'
EndWhile
QueryPerformanceCounter(Addr(Ende&[0]))
'-------------------------------------------------------------------
Ende! = if(Ende&[1]<0,Ende&[1]+2^32,Ende&[1])*2^32+if(Ende&[0]<0,Ende&[0]+2^32,Ende&[0])
Start! = if(Start&[1]<0,Start&[1]+2^32,Start&[1])*2^32+if(Start&[0]<0,Start&[0]+2^32,Start&[0])
imprimir "\n-----------------------------------------------------------"
beep:imprimir " Test final."
Test!=Ende!-Start!:Sekunden! = Test!/Frequenz!
Imprimir "\n\n Gesamtdauer: ";format$("%g",Sekunden!);" Sekunden"
Imprimir "\n Dauer je Durchlauf: ";format$("%g",10^6*Sekunden!/Durchläufe&);" Mikrosekunden"
Imprimir "\n Das entspricht rund ";format$("###,###,##0",Durchläufe&/Sekunden!);" Durchläufen pro Sekunde."
imprimir "\n-----------------------------------------------------------"
Imprimir "\n\n Beenden con Tastendruck!"
WaitInput 1000*60*5
End
|
|
|
| Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 11.05.2021 ▲ |
|
|
|