Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi wie verwende ich QueryPerformanceCounter? (https://www.delphipraxis.net/34399-wie-verwende-ich-queryperformancecounter.html)

Thorben86 22. Nov 2004 16:18


wie verwende ich QueryPerformanceCounter?
 
Knn mir einer helfen, wie ich den QueryPerformanceCounter() verwenden muss, umd damit ungefähr auszurechnen, die lange die prozedur lief. Ich weis nur, dass man noch die QueryPerformanceFrequency irgendwie einstellen muss, aber hab keine ahnungg, wie ich das jetzt da einsetze. hab auch nach QueryPerformanceCounter hier gesucht, aber der hat nur immer ausgespuckt, dass es das nicht gibt.

Ich will aber keine Fremdkomonenten oder so dafür benutzen.

Elite 22. Nov 2004 16:21

Re: wie verwende ich QueryPerformanceCounter?
 
Hier gibt es ein Beispiel. Ist zwar auf DelphiX angepasst, aber es wird alles gut und ausführlich erläutert. Sollte also kein Problem sein, das Beispiel zu übertragen.

Luckie 22. Nov 2004 16:21

Re: wie verwende ich QueryPerformanceCounter?
 
Die Forensuche sollte helfen: Hier im Forum suchenQueryPerformanceCounter.

Sprint 22. Nov 2004 16:49

Re: wie verwende ich QueryPerformanceCounter?
 
Link

Thorben86 22. Nov 2004 17:49

Re: wie verwende ich QueryPerformanceCounter?
 
@Luckie: Ichh ba genau danach gesucht, aber bei mir kam immer raus dass es das suchwort nicht gibt. Gerade hats aber geklappt.

Welchen wert nimmt man denn für die Frequenz bei QueryPerformanceFrequency, oder welche Faktoren muss ich da berücksichtigen?

Die Zeitspanne ist nicht gerade Groß.(ich will dauer einer prozedur ermitteln, die die Fakultät berechnet)

Sprint 22. Nov 2004 19:19

Re: wie verwende ich QueryPerformanceCounter?
 
Zitat:

Zitat von Thorben86
Welchen wert nimmt man denn für die Frequenz bei QueryPerformanceFrequency, oder welche Faktoren muss ich da berücksichtigen?

Hättest du dir meinen Link angeschaut, dann würdest du dich fragen.

Thorben86 22. Nov 2004 20:28

Re: wie verwende ich QueryPerformanceCounter?
 
Ich hab das durchgelesen! :gruebel: Du beziehst dich auf deinen Post da, oder?
Da wird ja auch nur eine variable verwendet. Beim ermitteln der differenz wird die dann ja vom ergebnis dividiert, aber ich verstehe nicht, wie ich daraus schließen soll, was ich da nehmen muss. Ich würde höchstens schließen, dass das egal ist, aber das würde ja nicht wirkklich sinn machen, oder hab ich was übersehen?

Edit: Ich hab es jetzt einfach mal ohne wertzuweisung geschrieben.

Luckie 22. Nov 2004 20:34

Re: wie verwende ich QueryPerformanceCounter?
 
Schon mal auf die Idee gekommnen, dass QueryPwerformanceFrequency den Wert ermittelt und in die Variable schreibt?

Sprint 22. Nov 2004 20:39

Re: wie verwende ich QueryPerformanceCounter?
 
Zitat:

Zitat von Thorben86
Welchen wert nimmt man denn für die Frequenz bei QueryPerformanceFrequency, oder welche Faktoren muss ich da berücksichtigen?

Zitat:

Zitat von Thorben86
Ich würde höchstens schließen, dass das egal ist, aber das würde ja nicht wirkklich sinn machen, oder hab ich was übersehen?

Mit der WinAPI Funktion QueryPerformanceFrequency ermittelst du den Wert, den du dann beim Teilen brauchst. Die Zeitmessung beginnt erst mit dem Aufruf von QueryPerformanceCounter(Start) und endet dann mit dem Aufruf QueryPerformanceCounter(Stop).

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);

  procedure Test;
  begin
    Sleep(2000);
  end;

var
  Start, Stop, Frequenzy: Int64;
begin

  QueryPerformanceFrequency(Frequenzy);

  QueryPerformanceCounter(Start);
  Test;
  QueryPerformanceCounter(Stop);

  ShowMessage(FormatFloat('0.00', (Stop - Start) * 1000 / Frequenzy) + ' Millisekunden');

end;

Thorben86 22. Nov 2004 21:07

Re: wie verwende ich QueryPerformanceCounter?
 
Thx, jetzt hab ichs verstanden :) :coder:


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:00 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz