Frage

Ich hoffe, nicht jeder ist mit Rational Purify.

Also, was tun Sie, wenn Sie Messen möchten:

  • Zeit, die für eine Funktion
  • peak memory usage
  • code coverage

Im moment haben wir es manuell machen [mit log-Anweisungen mit Zeitstempel und ein weiteres Skript zum analysieren von log-und Ausgang zu excel.Puh...)

Was würden Sie empfehlen?Hinweise auf tools oder Techniken würden geschätzt werden!

EDIT:Sorry, ich wollte nicht geben Sie die Umwelt ersten, Seine Ebene C auf einer proprietären mobilen Plattform

War es hilfreich?

Lösung

Sie wollen wahrscheinlich verschiedene Tools für die Leistungsprofilerstellung und Code-Coverage.

Für Profilierung ziehe ich Shark auf MacOSX. Es ist frei von Apple und sehr gut. Wenn Ihre App Vanille C sollten Sie in der Lage sein, es zu benutzen, wenn Sie halten von einem Mac bekommen.

Für Profilierung unter Windows können Sie LTProf verwenden. Billig, aber nicht so toll: http://successfulsoftware.net/2007/12/18/optimising-your -Anwendung /

(ich glaube, Microsoft schießt themself wirklich im Fuß durch kein anständiges Profiler mit den billigeren Versionen von Visual Studio bereitgestellt wird.)

Für Abdeckung ziehe ich Coverage Validator unter Windows: http://successfulsoftware.net/2008/03/10/coverage-validator/ Es aktualisiert die Berichterstattung in Echtzeit.

Andere Tipps

Ich habe das viel getan. Wenn Sie ein IDE haben, oder einen ICE,

Für komplexe Anwendungen Ich bin ein großer Fan von Intel VTune . Es ist eine etwas andere Einstellung zu einem traditionellen Profiler den Code, die Instrumente. Es funktioniert durch den Prozessor Abtasten zu sehen, wo Befehlszeiger 1000 Mal pro Sekunde ist. Es hat den großen Vorteil, dass keine Änderungen an Ihre Binärdateien erfordern, die so oft nicht das Timing ändern würde, was Sie messen wollen.

Leider ist es nicht gut für .net oder Java, da es keine Möglichkeit für die VTune ist Befehlszeiger auf dem Symbol auf der Karte wie es mit traditionellem Code.

Es erlaubt Ihnen auch alle möglichen anderen Prozessor / Hardware zu Messwerten zu messen, wie Uhren pro Befehl, Cache-Hits / verluste, TLB Treffer / Fehltreffer, usw., die können Sie erkennen, warum bestimmte Abschnitte des Codes kann länger nehmen zu laufen als Sie durch Überprüfen der Code nur erwarten würde.

Wenn Sie eine tun ‚auf dem Metall‘ eingebettet ‚C‘ System (ich bin nicht ganz sicher, was ‚mobile‘ implizierte in Ihrem Posting), dann in der Regel Sie irgendeine Art von Timer-ISR haben, in dem es ziemlich ist leicht bei dem der Code-Adresse zum abtasten der Interrupt aufgetreten ist (durch in dem Stack oder Link betrachten Registern oder was auch immer Graben zurück). Dann ist es trivial ein Histogramm von Adressen in einer Kombination von Granularität / Bereich von Interesse zu bauen.

Es ist in der Regel dann nicht zu hart eine Kombination aus Code / script / Excel-Sheets zu brauen, die Ihre Histogrammzählwerte mit Adressen aus Ihrem Linker Symbol / Listendatei verschmilzt Sie Profilinformationen zu geben.

Wenn Sie sehr sind begrenzt RAM, kann es ein bisschen nervig genug sein, um Daten zu sammeln, um diese beiden zu einfach und nützlich, aber Sie würden uns mehr über Ihre Plattform zu sagen brauchen.

nProf - Free, macht das für .NET.

Ruft den Job zu erledigen, zumindest genug, um die 80/20 zu sehen. (20% des Codes, 80% der Zeit nehmen)

Fenster (.NET und Native Exes): AQTime ist ein großes Werkzeug für die Geld. Standalone oder als Visual Studio Plugin.

Java: Ich bin ein Fan von JProfiler . Auch hier kann als Einzellösung oder als Eclipse (oder verschiedenen anderen IDEs) Plugin.

Ich glaube, dass beide Testversionen haben.

Die Google Perftools in dieser Hinsicht äußerst nützlich sind.

Ich benutze DevPartner mit MSVC 6 und XP

Wie werden irgendwelche Tools arbeiten, wenn Ihre Plattform ein proprietäres Betriebssystem ist? Ich glaube, Sie tun das Beste, Sie können jetzt

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top