AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Geschwindigkeit einer Funktion messen

Ein Thema von Gargamel · begonnen am 23. Jul 2008 · letzter Beitrag vom 23. Jul 2008
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#11

Re: Geschwindigkeit einer Funktion messen

  Alt 23. Jul 2008, 14:22
Zitat von Bernhard Geyer:
Wenn mir der Proviler sagt das 90% der Rechenzeit an 5 Quellcodezeilen verbraten werden ist es egal ob diese um den Faktor 5 verlangsamt wurden.
Schon klar. Aber wenn er nur wissen will "Funktion XY läuft Z Sekunden", dann ist AQTime wohl die falsche Wahl.

Abgesehen davon: vielleicht will ers ja auch im Programm ausgeben
  Mit Zitat antworten Zitat
Gargamel

Registriert seit: 19. Mär 2007
171 Beiträge
 
#12

Re: Geschwindigkeit einer Funktion messen

  Alt 23. Jul 2008, 14:24
Genau die richtigen Hinweise. Danke an alle.
Funktioniert prima.
  Mit Zitat antworten Zitat
Benutzerbild von Forlan
Forlan

Registriert seit: 17. Feb 2008
Ort: Herford
265 Beiträge
 
Delphi 2007 Architect
 
#13

Re: Geschwindigkeit einer Funktion messen

  Alt 23. Jul 2008, 14:24
Zitat von Gargamel:
Genau die richtigen Hinweise. Danke an alle.
Funktioniert prima.
welche der lösungen funktioniert denn prima???^^
Marcel
マルセル
www.youtube.com/beethoven1990
  Mit Zitat antworten Zitat
Benutzerbild von Fussball-Robby
Fussball-Robby

Registriert seit: 22. Okt 2007
Ort: Nähe Köln
1.063 Beiträge
 
Delphi 7 Enterprise
 
#14

Re: Geschwindigkeit einer Funktion messen

  Alt 23. Jul 2008, 14:29
Zitat von Forlan:
Müsste es so nicht klappen????

Delphi-Quellcode:
procedure TForm1.Go;
var start,stop,zeit : integer;
begin
  start := GetTickCount;
     //Hier deine Funktion
  stop := GetTickCount;
  zeit := stop-start;
  ShowMessage('Gebrauchte Zeit '+ IntToStr(zeit) + ' ms';
end;
GetTickCount misst Millisekunden, für Funktionen, die länger dauern, reicht das natürlich. Um einiges genauer ist aber MSDN-Library durchsuchenQueryPerformanceCounter (welches ja ganz am Anfang schon von sakura angesprochen wurde)
Robert L.
Der folgende Satz ist richtig!
Der vorherige Satz ist falsch!

Paradox
  Mit Zitat antworten Zitat
Gargamel

Registriert seit: 19. Mär 2007
171 Beiträge
 
#15

Re: Geschwindigkeit einer Funktion messen

  Alt 23. Jul 2008, 14:31
OK. Hier der Quellcode. Wundert Euch bitte nicht, warum ich ständig PChar in String konvertiere. Der Grund ist der, daß ich mit der Torque Game Engine arbeite und die komplett in C++ geschrieben wurde. Da ich aber C++ nur dann anfasse, wenn unbedingt nötig, nutze ich lieber mit der 3D Engine eine zusätzliche DLL, die ich in Delphi schreibe. Daher die Umwandlung.
Die Zeitmessung ist deswegen interessant, da KI und Wegfindung recht aufwändige Berechnungen sind. Und ich will halt wissen, wie schnell die Algorithmen ablaufen.

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var Start, Stop, Frequenzy: Int64;
    i:integer;
    name_p:PChar;
    name_s:string;
begin
  Listbox1.clear;
  QueryPerformanceFrequency(Frequenzy);
  QueryPerformanceCounter(Start);

  for i:=1 to StrToInt(Edit1.text) do
  Begin

    name_p:='Ich mag Delphi';

    name_s:=StrPas(name_p);

    listbox1.Items.Add(IntToStr(i)+': '+name_s);

  End;

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

  finally

  end;
end;
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#16

Re: Geschwindigkeit einer Funktion messen

  Alt 23. Jul 2008, 14:32
Das hat Daniel doch schon erwähnt, Robert. Wenn mich meine Erinnerung nicht trügt, wurde hier auch kürzlich ein Problem mit QueryPerformanceCounter erwähnt, das auftritt, wenn der Thread die CPU wechselt.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#17

Re: Geschwindigkeit einer Funktion messen

  Alt 23. Jul 2008, 14:36
Zitat von Gargamel:
Die Zeitmessung ist deswegen interessant, da KI und Wegfindung recht aufwändige Berechnungen sind. Und ich will halt wissen, wie schnell die Algorithmen ablaufen.
Für sowas ist ein Line-Profiler wie bei AQTime super.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:11 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