Измерение производительности приложений на плате разработки ARM

У меня есть приложение C++, и я хочу измерить его производительность на плате ARM. На плате работает Ubuntu.

В настоящее время я рассматриваю valgrind и gprof для измерения производительности.

Какие инструменты/методы следует использовать для измерения производительности?


person MA1    schedule 15.02.2012    source источник


Ответы (1)


Вот важные вещи, с которыми я столкнулся в прошлый раз, когда мне пришлось это сделать:

  • valgrind (поддерживается только на процессорах Cortex ARM.. бу)
  • mprof (не ахти с потоками?)
  • gprof (не ахти с потоками?)
  • oprofile (требуются моды ядра, но они есть в большинстве современных ядер. Я использовал это в ARM.
  • systemtap (недавно перенесен на ARM, выглядит потрясающе - как dtrace для Linux)
  • strace и ltrace иногда действительно могут быть полезны, хотя и очень высокоуровневые.
  • iostat и все остальные, если вы хотите бросить старую школу.
  • Справедливое количество информации в /proc/ и /sys, если вы копаете
  • ioapps — трассировка ввода-вывода
  • lsof полезен для отслеживания зависших сокетов и дескрипторов файлов.
  • систат
  • pmap
  • иптраф
  • tcpdump
  • perftools – профилирование ЦП и памяти.
  • загрузочная диаграмма
  • QEMU может размещать ядра/двоичные файлы ARM и может управляться извне. Пару раз мне пригодилось.
  • Ручная инструментация с использованием хуков gcc

    void __cyg_profile_func_enter (void *, void *) __attribute__((no_instrument_function)); void __cyg_profile_func_exit (void *, void *) __attribute__((no_instrument_function));

person synthesizerpatel    schedule 15.02.2012
comment
Спасибо. Есть идеи о том, сколько усилий требуется для systemtap, чтобы настроить его для измерения производительности? Поскольку вы использовали oprofile, что вы скажете, следует ли мне это учитывать? - person MA1; 15.02.2012
comment
Я только читал о системном кране, но мне понравилось то, что я прочитал. oprofile был немного тяжелым и загадочным, но это было 3 года назад. Если бы мне пришлось снова выполнить эту задачу, если бы настройки ядра systemtap были доступны, я бы сначала пошел по этому пути. - person synthesizerpatel; 16.02.2012