3

我有一个 C++ 应用程序,我想在 ARM 板上测量它的性能。董事会正在运行ubuntu。

目前我正在考虑使用 valgrind 和 gprof 来衡量性能。

我应该使用哪些工具/技术来衡量性能?

4

1 回答 1

8

这是我上次不得不这样做时遇到的大事:

  • valgrind(仅支持 cortex ARM 处理器.. boo)
  • mprof(线程不那么热?)
  • gprof(线程不那么热?)
  • oprofile(需要内核模块,但大多数现代内核都有它。我在 ARM 下使用过它。
  • systemtap(最近移植到 arm,看起来很棒——就像 Linux 的 dtrace)
  • strace 和 ltrace 有时实际上很有用,虽然非常高级
  • iostat 等,如果你想踢它老派。
  • 如果您挖掘,/proc/ 和 /sys 中的信息量相当大
  • ioapps - IO 跟踪
  • lsof 对于跟踪卡住的套接字和文件句柄很有用
  • 系统统计
  • 地图
  • iptraf
  • tcpdump
  • perftools - CPU 和内存分析
  • 引导图
  • 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));

于 2012-02-15T19:44:07.730 回答