AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Start und Stop jeder Methode Tracen an nur einer stelle Implementieren
Thema durchsuchen
Ansicht
Themen-Optionen

Start und Stop jeder Methode Tracen an nur einer stelle Implementieren

Ein Thema von gibb · begonnen am 23. Feb 2012 · letzter Beitrag vom 2. Mär 2012
Antwort Antwort
Seite 6 von 7   « Erste     456 7      
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.171 Beiträge
 
Delphi 12 Athens
 
#51

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

  Alt 28. Feb 2012, 12:19
Was spricht dagegen ein Tool zu schreiben, das das für einen übernimmt?

Edit: Oh, ich sehe gerade, dass es doch nicht so gut funktioniert. Sorry für den Müll.
Wobei das schon möglich ist, also ein toll, welche diese zeilen in den Quellcode einbaut, wenn man sie haben will und rausbaut, wenn nicht.

Ein echter Precompiler hääte nur den Vorteil, daß er diese Änderung virtuell/temporär/unsichtbar nur wärend des Compilierens machen könnte.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#52

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

  Alt 28. Feb 2012, 12:22
Ja natürlich. Mir ging es auch nur darum, dass Problem zu lösen. Leider gibt es eben scheinbar keine schöne Lösung, dann würde ich die auch bevorzugen.
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.012 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#53

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

  Alt 28. Feb 2012, 12:38
AOP in Delphi (Profiling wäre eine der Anwendungsgebiete) beschäftigt mich schon eine Weile und das lässt sich aktuell nur behelfsmäßig über virtual method interception lösen. Alternative wäre eine Art Preprozessor zu bauen oder die Binary nachträglich zu modifizieren.

Aber an dieser Stelle nochmal die Frage: ist es notwendig Bottlenecks in der Anwendung zur Entwicklungszeit zu finden oder Echtzeitdaten beim Kunden in Produktiveinsatz?
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight

Geändert von Stevie (28. Feb 2012 um 13:36 Uhr)
  Mit Zitat antworten Zitat
schlecki

Registriert seit: 11. Apr 2005
Ort: Darmstadt
148 Beiträge
 
Delphi XE2 Enterprise
 
#54

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

  Alt 29. Feb 2012, 08:40
noch ein ganz pragmatischer Ansatz wäre GpProfile (http://17slon.com/gp/gpprofile/). Da gibt es iirc ein kleines Tool, welches alle Methoden in scannt und instrumentiert - oder auch wieder den original-Zustand herstellt.

Delphi-Quellcode:
procedure Foo
begin
...
end
wird glaube ich zu


Delphi-Quellcode:
procedure Foo
begin
{$ifdef gpprofile}gpStart; try {$endif}
...
{$ifdef gpprofile}finally gpEnd; end; {$endif}
end
wir hatten das ne zeitlang genutzt, haben dann aber die Funktionen gpStart und gpEnd entsprechend angepasst.
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.012 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#55

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

  Alt 29. Feb 2012, 09:10
noch ein ganz pragmatischer Ansatz wäre GpProfile (http://17slon.com/gp/gpprofile/).
Dann solltest du aber auch auf die aktuelle Version verlinken.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
gibb

Registriert seit: 12. Sep 2007
Ort: Bern
178 Beiträge
 
Delphi 2006 Architect
 
#56

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

  Alt 29. Feb 2012, 11:14
Hallo, es geht darum in echtzeit beim Kunden auf seinem System das Festzustellen und nicht in der Entwicklungsphase. Weil der Kunde Entwickelt auch nur hat der kein Tool zur hand & wir auch erst seit kurzem so halb mit welchem er seine Performance probleme Analysieren kann. Unter umständen bedürfen seine Probleme anpassungen im Delphi sourcecode um das zu lösen. Schön wäre halt in dem Moment wenn man da schon einigermassen eingrenzen kann wo das ist und nicht zuerst die Kundendatenbank bei uns nachbauen muss um dann mit einem profiler drüber zu gehen (der unter umständen sowieso nicht funktioniert warum auch immer.)

Also ich fasse zusammen um auch sicher zu sein das ich alles richtig verstanden habe:
- Omata hat nach einem Search Patern gesucht welches Methodenanfänge erkennt um dann dort eine Zeile einzufügen. Und war leider nicht erfolgreich (wäre mein bevorzugter ansatz gewesen. Wenn ich auch nur eine kleine ahnung gehabt hätte wie ich zuverlässig Methodenanfänge erkennen könnte)
-Ich verwende einen Parser um damit einen Methodenanfang zu finden und dort meinen Inhalt einzufügen? Ich habe die pas mal überflogen und auf die schnelle nicht verstanden wie das genau zu verwenden ist.


Gruss Gibb

Geändert von gibb (29. Feb 2012 um 12:10 Uhr)
  Mit Zitat antworten Zitat
schlecki

Registriert seit: 11. Apr 2005
Ort: Darmstadt
148 Beiträge
 
Delphi XE2 Enterprise
 
#57

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

  Alt 29. Feb 2012, 11:37
@Stevie: der link ist auf der von mir verlinkten Seite auch vorhanden

@gibb
Nein, ich habe eigentlich nur die Methode gezeigt, wie man mit möglichst wenig Aufwand ein Log einbauen kann. Die Aufrufe müssten schon von Hand geschrieben werden. Alternativ könnte man da mit gpProfile was basteln. Da ist zumindest der Parser dabei - ist ja OpenSource.
  Mit Zitat antworten Zitat
gibb

Registriert seit: 12. Sep 2007
Ort: Bern
178 Beiträge
 
Delphi 2006 Architect
 
#58

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

  Alt 29. Feb 2012, 12:09
tschuldige, ich bin mit den Namen durcheinander gekommen, das war omata...
  Mit Zitat antworten Zitat
gibb

Registriert seit: 12. Sep 2007
Ort: Bern
178 Beiträge
 
Delphi 2006 Architect
 
#59

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

  Alt 29. Feb 2012, 14:57
mhmm, ich habe mir gpProfile etwas angeschaut, zumindest die exe. Und die scheint genau das zu machen was ich eigentlich haben möchte zumindest fast

Entweder such ich mir jetzt den Teil aus dem Code raus der das ganze parst oder aber ich kann direkt die exe so konfigurieren das ich es so verwenden kann...

1. wie passe ich den searchpath an für GP Profile? Wenn ich die .dpr öffne findet er nicht alle files weil nicht alle im searchpath von GPProfile sind.
2. Kann ich dem beibringen auch methoden aufzurufen und units zu includen die in meiner Applikation vorhanden sind? Wenn ja wie? resp. wo.

Also ich möchte sozusagen das RAII patern mit der erweiterung für den Methodenname einbinden und halt meine Log funktion aufrufen und nicht die des GpProfile. Damit könnte ich dann einen Kompletten Callstack aus delphi & Scripting herstellen ebenso Zeitmessungen währen möglich und viele andere lustige sachen
  Mit Zitat antworten Zitat
gibb

Registriert seit: 12. Sep 2007
Ort: Bern
178 Beiträge
 
Delphi 2006 Architect
 
#60

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

  Alt 29. Feb 2012, 16:09
Hab auch den Source unterdessen gezogen, habs noch nicht kompiliert gekriegt. Auh habe ich noch nicht die Funktion gefunden die die anderen Registriert... leider dachte ich könnte da ev abschauen wenn jemand also mehr dazu weiss oder weiss wie ich am besten ein Tool schreibe das mir das oben beschriebene ermöglicht... nur immer her damit.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 6 von 7   « Erste     456 7      


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 20:13 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