Delphi-PRAXiS
Seite 2 von 7     12 34     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Start und Stop jeder Methode Tracen an nur einer stelle Implementieren (https://www.delphipraxis.net/166648-start-und-stop-jeder-methode-tracen-nur-einer-stelle-implementieren.html)

schlecki 23. Feb 2012 15:23

AW: Start und Stop jeder Methode Tracen an nur einer stelle Implementieren
 
Zitat:

Zitat von himitsu (Beitrag 1152538)
Die VAriante mit dem Interface ist eigentlich genial. :thumb:
Das darf ich mir doch mopsen? :angle2:

dafür hab ichs gepostet :)

Bernhard Geyer 23. Feb 2012 15:30

AW: Start und Stop jeder Methode Tracen an nur einer stelle Implementieren
 
Zitat:

Zitat von schlecki (Beitrag 1152476)
Die Verwendung ist dann so:

Delphi-Quellcode:
procedure TForm.ButtonClick(...)
begin
  TMeasure.MeasureThis('TForm.ButtonClick');
  Writeln('Muuh');
  Sleep(1000);
end;

Wenn man die Hilfsroutinen der JEDI zur verfügung hat könnte man sich den Text-Parameter bei "MeasureThis" sparen.
Einfach im Callstack den passenden Methodennamen rausholen und als Text ausgeben.
Dann könnte man mit einer einfachen Methode das komplett erschlagen

Delphi-Quellcode:
procedure StartMeasure: IAutoDestroy;
begin
  result := TMeasure.MeasureThis(_STACK...._);
end;
Verwendung:
Delphi-Quellcode:
procedure TForm.ButtonClick(...)
begin
  StartMeasure;
  Writeln('Muuh');
  Sleep(1000);
end;

gibb 23. Feb 2012 16:31

AW: Start und Stop jeder Methode Tracen an nur einer stelle Implementieren
 
Okay das klingt schonmal nicht schlecht...

Interface + JEDI klasse ergibt immerhin einen einzeiler der dynamisch klassen+methodenname ausliest... jetzt nur noch an einer stelle implementieren + einen schalter einbauen ob das tracing stattfinden soll. Aber diese stelle gibt es wohl nicht oder? es gibt ja nichts was die methodenaufrufe sozusagen verarbeitet und man noch einfluss darauf nehmen kann...

Bummi 23. Feb 2012 16:38

AW: Start und Stop jeder Methode Tracen an nur einer stelle Implementieren
 
{$ifdef debug} ... {$endif}

??

schlecki 23. Feb 2012 21:21

AW: Start und Stop jeder Methode Tracen an nur einer stelle Implementieren
 
oder ein boolean als class var in TMeasure - wenn der false ist, einfach im Log nichts schreiben.

edit: @bernhard geyer das mit der jcl muß ich mir nochmal anschauen, haben wir sowieso im projekt :) Danke ^^

Luckie 23. Feb 2012 21:39

AW: Start und Stop jeder Methode Tracen an nur einer stelle Implementieren
 
Darf man mal fragen wozu du das brauchst?

himitsu 23. Feb 2012 22:40

AW: Start und Stop jeder Methode Tracen an nur einer stelle Implementieren
 
Zitat:

Zitat von Luckie (Beitrag 1152590)
Darf man mal fragen wozu du das brauchst?

Wenn man absolut keine Ahnung hat, was das eigene Programm macht und man das nun endlich mal wissen will? :stupid:

Bei 'ner Multithreadanwendung, mit "ausreichend" (tausenden/millionen) Funktionen, da möchte ich dan die "kleinen" Logdateien sehn und vorallem den, welcher damit dann auch wirklich noch was anfangen kann (den, der in dieser Masse dann noch das Wichtige findet).

Furtbichler 24. Feb 2012 06:24

AW: Start und Stop jeder Methode Tracen an nur einer stelle Implementieren
 
Zitat:

Zitat von himitsu (Beitrag 1152595)
...da möchte ich dann die "kleinen" Logdateien sehn und vorallem den, welcher damit dann auch wirklich noch was anfangen kann (den, der in dieser Masse dann noch das Wichtige findet).

Es soll doch glatt Leute geben, die sich eine Auswertesoftware schreiben oder die Ergebnisse in einen SQL-Server schaufeln und dann damit rumspielen.

Stevie 24. Feb 2012 07:25

AW: Start und Stop jeder Methode Tracen an nur einer stelle Implementieren
 
Zitat:

Zitat von himitsu (Beitrag 1152538)
Die VAriante mit dem Interface ist eigentlich genial. :thumb:
Das darf ich mir doch mopsen? :angle2:

Dieses Pattern nennt sich RAII.

Daniel 24. Feb 2012 07:34

AW: Start und Stop jeder Methode Tracen an nur einer stelle Implementieren
 
Zitat:

Zitat von Luckie (Beitrag 1152590)
Darf man mal fragen wozu du das brauchst?

Damit ließe sich quantitativ erfassen, welche Programmteile wie oft aufgerufen werden und dabei allein und in Summe wie viel Ausführungszeit benötigen. Danach hat man (im Idealfall) eine Vorstellung, welches die maßgeblichen Flaschenhälse sind und wo man am effizientesten zur Optimierung ansetzen kann.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:26 Uhr.
Seite 2 von 7     12 34     Letzte »    

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