Vraag gebruik valgrind om de tijd (in seconden) die in elke functie wordt doorgebracht te kennen


is er een uitbreiding van valgrind, die kan worden gebruikt in het opdrachtvenster, die me kan helpen de tijd te kennen, in seconden, doorgebracht in elke functie in mijn C-code?

bedankt =)


27
2017-07-12 11:40


oorsprong


antwoorden:


Gebruik voor het profileren van machine-instructies valgrind's callgrind (ook, cachegrind kan cache en branch prediction profiling doen wat best leuk is).

Gebruik voor tijdmetingen de cpu-profiler van google, geeft het betere resultaten dan gprof. U kunt de bemonsteringsfrequentie instellen en deze kan de uitvoer weergeven als een mooie geannoteerde oproepgrafiek.


22
2017-07-12 13:30



Valgrind is niet geschikt om de tijd te meten, omdat het draaien van een toepassing in valgrind de resultaten vervormt (vertraging, CPU versus I / O). Dus valgrind profiling tool callgrind meet geen tijd maar CPU-instructies. Callgrind is alleen nuttig als uw bottleneck CPU-gebonden is (dus CPU-instructies zijn belangrijk), dan zullen de gemeten CPU-instructies in verhouding staan ​​tot de tijdsbesteding. Het is niet handig als er zware I / O of meerdere processen bij betrokken zijn. Gebruik dan een sampling profiler, zoals gprof of sysprof. Dat controleert in intervallen die het proces functioneren, met minder vervormde resultaten.


14
2017-07-12 12:44



Gebruik deze link. Ik zou zoiets als denken Callgrind zou het moeten doen.


3
2017-07-12 11:43