LINUX.ORG.RU

Intel Vtune vs perf vs gprof vs Cachegrind etc

 


0

1

Вкратце, вопрос в том, есть ли в vtune нечто такое, что в нём добиться МОЖНО и чего нельзя в perf, gprof и т.п. Если что-то такое есть, то за счёт чего в vtune это возможно? И почему это что-то недоступно всяким гнушным профайлерам или валгринду?

Cachegrind вообще для профилирования лучше не использовать - так как это имеет мало общего с исполнением на реальном железе. Valgrind пытается эмулировать твой процессор, так что результат именно как профилировщика будет так себе.

gprof требует перекомпиляции проекта.

perf нормальный семплирующий профайлер, который к тому же умеет снимать данные с PMU, что очень полезно. Но вот с удобством могут быть проблемы (я не знаю гуёв к нему, кроме VTune).

Intel VTune профайлит в целом как perf (я юзаю его как фронтенд к perf, но есть опция поставить интеловский драйвер в систему, чего я никогда не делал). В целом удобный гуй, строит красивые графики, подсвечивает.

Как-то так.

zamazan4ik ★★ ()
Ответ на: комментарий от zamazan4ik

Всё так

Всё так.

VTune сейчас (видимо) действительно лучший GUI для perf-а. Тормознутось явы и многие глюки долго/постепенно пофиксили. Плюс Intel выдает лицензии для open-source проектов, даже небольших.

На не-старых ядрах ставить их драйвер смысла примерно нет. Тем не менее, лучше просто глянуть https://software.intel.com/en-us/vtune-amplifier-help-driverless-event-based-sampling-collection#DRIVERLESS

А за Cachegrind я хочу заступится. В некоторых ситуациях это единственный инструмент, который позволяет и исследовать, и экспериментировать, но только если действительно необходимо.

Deleted ()
Ответ на: Всё так от Deleted

Насколько я знаю, Vtune бесплатен даже для коммерческого использования. Там просто лицензию нужно получать каждые 90 дней и не будет платного саппорта. Так что не надо выправшивать никакие лицензии под Open Source :)

Хотелось бы уточнить про Cachegrind - какие практические задачи вы им решали именно с точки зрения профилирования реальных приложений? Эмулировали разные процессоры с разным кол-вом того же кеша и смотрели, насколько по-разному программа работает? Или что-то ещё?

zamazan4ik ★★ ()