Time Sampling Probleme mit gprof
Ich versuche, mit gprof einen C ++ - Code zu erstellen, der mit g ++ kompiliert wurde, einschließlich der Option -pg. Trotz der Tatsache, dass das Programm 10-15 Minuten benötigt, um auf meinem Computer (mit maximaler CPU-Auslastung) ausgeführt zu werden, sind die von gprof erzeugten Spalten für% Zeit, kumulierte Sekunden und Selbstsekunden der Tabelle vollständig 0,00! Die Spalte Anrufe enthält korrekt aussehende Daten, z. B. über 150.000 Aufrufe einer Grundfunktion. Hier ein paar der 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 Strings und das einzige #include ist iostream (wird nur zur Ausgabe der endgültigen Antwort verwendet), daher kann es nicht langsam sein, da String-Finds und -Vergleiche oder ähnliche langsame externe Funktionen wie in dieser Frage vorgeschlagen vorliegen: Mit gprof kann keine Zeit angesammelt werden - der Gnu-Profiler
Das Programm selbst wird in Ordnung beendet und ich habe keinen Grund zu der Annahme, dass die Profildaten nicht korrekt geschrieben werden (wie hier vorgeschlagen:gprof meldet keine Zeit angesammelt)
Da dies alles in Windows 7 geschieht, ist der Versuch, Shark oder Valgrind zu verwenden, keine Option.
Gibt es einen Grund, warum für jede Funktion 0,00 ausgegeben werden?