Ich versuche, mit gprof ein Profil von C++-Code zu erstellen, der mit g++ und der Option -pg kompiliert wurde. Obwohl das Programm auf meinem Computer 10-15 Minuten läuft (bei maximaler CPU-Auslastung), sind die Spalten % Zeit, kumulative Sekunden und eigene Sekunden der von gprof erstellten Tabelle vollständig 0,00s! Die Spalte "Aufrufe" enthält korrekt aussehende Daten, zum Beispiel über 150.000 Aufrufe einer Basisfunktion. Hier ist ein Beispiel für die gesammelten Daten:
% cumulative self self total
time seconds seconds calls Ts/call Ts/call name
0.00 0.00 0.00 156012 0.00 0.00 perm::operator[](int) const
0.00 0.00 0.00 153476 0.00 0.00 perm::perm(void)
Das Programm verwendet keine Zeichenketten und das einzige #include ist iostream (nur für die Ausgabe der endgültigen Antwort verwendet), so dass es nicht langsam sein kann, weil der String findet und vergleicht oder andere ähnliche langsame externe Funktionen wie in dieser Frage vorgeschlagen: nicht in der Lage, mit gprof - dem gnu-Profiler - Zeit zu sammeln
Das Programm selbst wird problemlos beendet, und ich habe keinen Grund zu der Annahme, dass die Profildaten nicht korrekt geschrieben werden (wie hier vorgeschlagen wurde): gprof meldet keine akkumulierte Zeit )
Da dies alles unter Windows 7 geschieht, ist die Verwendung von Shark oder Valgrind keine Option.
Gibt es einen Grund dafür, dass in jeder Funktion 0,00s ausgegeben werden?