Autor Beitrag
Jann1k
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 866
Erhaltene Danke: 43

Win 7
TurboDelphi, Visual Studio 2010
BeitragVerfasst: Do 21.12.06 02:47 
Gut der einführungsthread wird recht kurz, also folgendes:
ich soll/will ein benchmark programm in Delphi schreiben, dieses soll nur die Leistung der CPU testen/anzeigen, leider fehlt mir irgendwie die Idee wie das jetzt genau zu realisieren ist.

Also: Wie programmiert man einen CPU Benchmark in Delphi?

Thx für jedwede vorschläge


mir is grad eingefallen, dasses doch einen befehl zur abfrage der computerinternen zeit gibt, nur find ich den nicht, wie ging der nochmal?
Horst_H
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1654
Erhaltene Danke: 244

WIN10,PuppyLinux
FreePascal,Lazarus
BeitragVerfasst: Do 21.12.06 09:04 
Hallo,

indem man zuerst die Priorität seines eigenen Progragrammes erhöht.
Aber bei fastcode.sourceforge.net/ sind bei Challenges fast alle mit einem Benchmarkprogramm dabei.
Siehe fastcode.sourceforge...tent/CharPosIEx.html

Gruss Horst
Jann1k Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 866
Erhaltene Danke: 43

Win 7
TurboDelphi, Visual Studio 2010
BeitragVerfasst: So 24.12.06 13:31 
hmm das hilft mir nicht wirklich weiter da ich in delphi nciht so gut bin, dass ich wirklich was vom quelltext versteh, ich musses ja selber programmieren

jemand ne idee für die funktion die die cpu zeit rausgibt?
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 24.12.06 14:02 
Na gut, das ist ja nicht ganz so einfach, deshalb hier mal eine Funtkion, die die Taktfrequenz anhand eines Benchmarks approximiert:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
function TScribaLog.GetCPUSpeed: Double;
const
  TimeOfDelay = 500;
var 
  TimerHigh, TimerLow: DWord;
begin
  SetPriorityClass(GetCurrentProcess, REALTIME_PRIORITY_CLASS);
  SetThreadPriority(GetCurrentThread,  THREAD_PRIORITY_TIME_CRITICAL);
  //Prioritäten auf Maximum setzen, damit ein realistisches Ergebnis bei
  //diesem kleinen Benchmark herauskommt.
  asm
    dw 310Fh
    mov TimerLow, eax
    mov TimerHigh, edx
  end;
  Sleep(TimeOfDelay);
  asm
    dw 310Fh
    sub eax, TimerLow
    sub edx, TimerHigh
    mov TimerLow, eax
    mov TimerHigh, edx
  end;
  Result := TimerLow / (1000.0 * TimeOfDelay);
  SetPriorityClass(GetCurrentProcess, NORMAL_PRIORITY_CLASS);
  SetThreadPriority(GetCurrentThread,  THREAD_PRIORITY_NORMAL);
  //Prioritäten wieder zurücksetzen
end;
Jann1k Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 866
Erhaltene Danke: 43

Win 7
TurboDelphi, Visual Studio 2010
BeitragVerfasst: Di 26.12.06 00:01 
kk danke für die hilfe, sry dass ich mich net früher melde, problem is gelöst