AMD CodeAnalyst предоставляется бесплатно как для Windows, так и для Linux и работает на большинстве процессоров x86 или x64 (включая Intel).
Он имеет дополнительные функции, доступные, когда у вас процессор AMD, конечно. Он также интегрируется в Visual Studio.
Мне очень повезло с этим.
Обратите внимание, что обычно существует как минимум две распространенные формы профилировщика:
- инструменты : изменяет сборку для записи информации в начале и в конце определенных областей (обычно для каждой функции)
- выборка : периодически проверяет, какой код выполняется для записи информации
Типы записываемой информации могут включать (но не ограничиваются): истекшее время, количество циклов ЦП, попадания / пропадания кэша и т. Д.
Инструментарий может быть специфическим для определенных областей кода (только определенные файлы или просто код, который вы компилируете, а не библиотеки, на которые вы ссылаетесь). Затраты намного выше (вы добавляете код в проект, выполнение которого занимает много времени, поэтому вы изменяете время; вы можете изменить поведение программы, например, для обработчиков прерываний или другого кода, зависящего от времени). Тем не менее, вы гарантированно получите информацию о функциях / областях, которые вы используете.
Выборка может пропустить очень маленькие или очень спорадические функции, но современные машины имеют аппаратное обеспечение, позволяющее вам производить гораздо более тщательную выборку. Обратите внимание, что некоторые системы отбора проб могут по-прежнему вводить временные различия, хотя, как правило, они будут намного меньше.
Некоторые инструменты профилирования поддерживают сочетание перечисленного выше в зависимости от того, как вы их используете.