Welche Profiler sollte ich _REAL_werte Zeit (einschließlich Warten auf syscalls) verbringen in dieser Funktion zu messen, nicht _CPU_ ein

StackOverflow https://stackoverflow.com/questions/3992587

Frage

Die Anwendung funktioniert nicht berechnen Dinge, aber tut i / o, lesen Dateien verwendet Netzwerk. Ich möchte Profiler, es zu zeigen.

Ich erwarte, dass so etwas wie etwas wie in Callgrind, dass Anrufe bei jedem proble clock_gettime.

Oder wie oprofile dass Interrupts meine Anwendung (während er schläft oder wartet auf Buchse / file / was auch immer), um zu sehen, was es zu tun.

Ich mag Dinge wie „lesen“, „connect“, „Nanosleep“, „Send“ und vor allem „fsync“ ( Und alle ihre Anrufer ), kühn zu sein (nicht Dinge wie String oder eine Zahl Funktionen, die Berechnungen).

ausführen

Plattform: GNU / Linux @ i386

War es hilfreich?

Lösung

Schnell trivial Sampling-Profiler für Linux gehackt: http://vi-server.org/vi /simple_sampling_profiler.html

Es anhängt backtrace(3) in eine Datei auf SIGUSR1, und dann wandelt sie in kommentierten Quelle.

Da es das Programm in regelmäßigen Abständen untersucht, wir werden sehen, Funktionen, dass wartet auf etwas.

Und wie es den Stapel geht, werden wir auch Anrufer sehen.

Auch Menschen aus Antworten auf ähnliche Fragen empfiehlt Zoom.

Andere Tipps

Es gibt keine wirkliche Möglichkeit, diese Frage zu beantworten, ohne Ihre Plattform zu wissen, und ein wenig mehr über das, was Sie zu tun versuchen.

Wenn ich auf einer Intel-Plattform renne, ich mag die Time Stamp Counter (RDTSC) . Es ist hart resoultion im Sub-Mikrosekundenbereich zu schlagen. Ich habe gerade einen Anruf, um es vor und nach einem Stück Code, und vergleichen Sie den Unterschied.

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