2016-07-25 4 views
0

Wie ich weiß kompilieren Code mit -fprofile-arcs Flag macht, um .gcda Datei nach dieser Codeausführung zu generieren. Zusammen mit dem Flag -ttest-coverage und der .gcno-Datei nach der Kompilierung ist es möglich, Informationen darüber zu erhalten, welcher Code wie oft ausgeführt wurde, und einen so genannten Code-Coverage-Report zu erhalten.Ist es möglich, "Ausführungszeit Verbrauch" Informationen aus GCDA-Dateien zu bekommen?

Ist es möglich, in ähnlicher Weise von .gcna Dateien Profilinformationen ähnlich wie gprof, wie Funktionen Anrufe Anzahl und Ausführungszeit Informationen zu erhalten?

Antwort

0

Ich habe Angst, dies zu sagen, aber Sie verwechseln die Terminologien hier.

GPROF: Es ist ein C/C++ Programm Profiler. Deren Zweck besteht darin, die Profilierungsinformationen für eine bestimmte Ausführung zu erzeugen, die aus Leistungsstatistiken wie dem Steuerfluss zwischen verschiedenen Funktionen besteht, und deren Beziehung zu der von der Elternfunktion und den Kindfunktionen einzeln konsumierten Zeit. Der Fokus liegt also darauf, leistungsverringernde Punkte in einem Programm zu finden.

Wo, wie,

gcov: Es ist ein C/C++ Coverage-Analyse-Tool. Deren Zweck besteht darin, die Zählungen der Ausführung für jede Anweisung, Verzweigungen und Blöcke zu erhalten. Also, der Fokus hier ist nur die Abdeckung Statistiken zu bekommen.

Daher ist die Moral der Geschichte, dass diese beiden Werkzeuge unterschiedliche Lebensziele haben. ;)

Wenn Sie beide Informationen erhalten möchten, können Sie mit gprof gehen, obwohl es seine Einschränkungen in vielen Szenarien hat, es wird Ihnen die Abdeckungsinformationen auch mit der Granularität auf Methodenebene geben.

Verwandte Themen