Ищу профилировщик c++ с низким уровнем воздействия

Я ищу независимый от ОС -профилировщик с низким уровнем воздействия для кода C++.

Когда я говорю «малое воздействие», я имею в виду что-то менее навязчивое, чем valgrind. Я планирую использовать его во встроенной среде на основе MIPS -(, отсюда и независимость от ОС -)и попробовал портированную версию valgrind, и она полностью изменила характеристики производительности (слишком сильно принцип Гейзенберга в работа ), поэтому я не могу пойти по этому пути. Мы знаем, что скорость шины памяти является узким местом, что, скорее всего -, объясняет, почему valgrind был таким навязчивым.

Я создал самодельный профилировщик на основе контрольных точек, который позволяет мне измерять определенные части кода. По сути, мне нужно изменить код (и перекомпилировать ), чтобы установить контрольные точки в стратегических местах кода. Затем, при выполнении, он сохраняет количество попаданий в каждую контрольную точку и время, прошедшее с момента попадания в последнюю контрольную точку. Затем, после его запуска, я могу выгрузить контрольные точки, и для каждой он вычисляет :число -попаданий, максимальное -время, минимальное -время, среднее -время и т. д.

Этот профайлер (Я назвал его LowImpactProfiler )работает нормально, но мне интересно, есть ли что-то лучше.

Я думал о oProfile, который представляет собой профайлер выборки, но поскольку я не использую Linux, я думаю, что это будет очень сложно реализовать.

9
задан Brady 3 May 2012 в 18:32
поделиться