У меня есть программа на C ++, и моя проблема в том, что я хотел бы знать:
это можно сделать с помощью таких инструментов, как valgrind
, perf
или подобное под Linux?
Я не должен, чтобы это приложение использовало много сторонних библиотек, но я не заинтересован в них, так как то, что я хочу изменить и улучшить, является ядром самого приложения, поэтому я могу сократить список всех возможных методов до реализованных только по «настоящему приложению».
В общем, как определить, какой класс или метод ответственен за самые большие сбои в ветвлении и потерю производительности?
Вы ищете профилировщик, такой как gprof
.
Программа, которую вы ищете, называется профилировщиком. Он дает вам список вызванных методов и процент времени выполнения вашей программы, который они используют. Если вы используете Linux, вы можете использовать такие инструменты, как valgrind, в Windows я лично использую Very Sleepy. Вы также можете увидеть эту ветку для списка профилировщика под Linux:
нить
Чтобы рассчитать машинный цикл для функции или глубины вызовов, вы можете использовать инструмент QUANTIFY.