Кто такой хороший простой в использовании профилировщик для C++ на Linux? [закрытый]

Я сделал простой тест с формулой, X-(X+1) =-1, и самое большое значение X, я могу взяться за работу над Safari, Opera и Firefox (протестированный на OS  X) 9e15. Вот код, который я использовал для тестирования:

javascript: alert(9e15-(9e15+1));
76
задан Falaina 22 July 2009 в 23:22
поделиться

8 ответов

Используйте gprof.

Просто скомпилируйте с флагом -pg (я думаю (но не уверен), что вам нужно отключить оптимизацию.) И используйте gprof для проанализируйте файл gmon.out, который затем создаст ваш исполняемый файл.

например:

gcc -pg -o whatever whatever.c

./whatever

gprof whatever gmon.out

То же самое с g ++ и cpp.

37
ответ дан 24 November 2019 в 11:22
поделиться
  1. Как всегда, убедитесь, что вы правильно кодировать вывод - обратите внимание, что я здесь говорится кодировать, а не HtmlEncode. Если вы выводите содержимое в HTML, тогда вы хотите используйте Html.Encode - однако, если вы вывод в JavaScript, тогда вы хотите использовать кодировку JavaScript функция. - Это поможет вам против межсайтового скриптинга (XSS)
  2. Используйте помощники, которые помогают против CSRF-атак там, где это необходимо (или, может быть, просто повсюду)
  3. В зависимости от того, как вы получаете доступ к своему хранилищу данных, если это база данных SQL, не забудьте защитите себя от SQL-инъекций, используя параметризованные запросы, хранимые процедуры, LINQ или что-то еще.
  4. Когда вы тестируете - убедитесь, что ваши тестовые данные содержат сомнительный вывод (вещи, в которых не удается вызвать Html.Encode, легко проявится, возможно, через XSS здесь! , то же самое касается вещей, которые вводятся в JavaScript, появляются ошибки!
24
ответ дан 24 November 2019 в 11:22
поделиться

Я поклонник Oprofile . Он включает в себя установку модуля ядра и требует некоторого обучения, но он достаточно мощный и очень хорошо работает для оптимизированных программ / программ без отладочных символов.

Vtune - еще один очень мощный профилировщик от Intel. Я считаю, что версия для Linux бесплатна для некоммерческого программного обеспечения.

Существует также набор инструментов Valgrind , предложенный dfa. Callgrind, вероятно, будет тем, что вас больше всего интересует. Cachegrind (набор функций которого является подмножеством Callgrind) и Massif тоже интересны, но у меня нет опыта работы с последними.

12
ответ дан 24 November 2019 в 11:22
поделиться

Взгляните на KCacheGrind , который представляет собой графический интерфейс для valgrind и делает его действительно простым в использовании.

5
ответ дан 24 November 2019 в 11:22
поделиться

У Google также есть хороший профилировщик как часть google-perftools , которые включены в Debian / Ubuntu и, возможно, в другие дистрибутивы.

4
ответ дан 24 November 2019 в 11:22
поделиться

gprof - это стандартный инструмент GNU для профилирования.

2
ответ дан 24 November 2019 в 11:22
поделиться
1
ответ дан 24 November 2019 в 11:22
поделиться

Zoom from RotateRight ( http://www.rotateright.com ) - вот что я использовал. Он имеет вид бабочек функций, и вы можете дважды щелкнуть любую функцию, чтобы погрузиться в исходный или asm-код. Выполните сборку с отладочной информацией (-g), чтобы увидеть исходный код, но вы все равно должны собрать и профилировать оптимизированный код.

13
ответ дан 24 November 2019 в 11:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: