performance - 在 ARM 开发板上测量应用程序性能

标签 performance embedded arm embedded-linux ubuntu-11.10

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

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

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

最佳答案

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

  • valgrind (仅支持Cortex ARM 处理器.. 嘘)
  • mprof(线程不是很热?)
  • gprof(线程不是很热?)
  • oprofile (需要内核模块,但大多数现代内核都有它。我在 ARM 下使用过它。
  • systemtap (最近移植到 arm,看起来很棒 - 就像 Linux 的 dtrace)
  • strace 和 ltrace 有时实际上很有用,虽然非常高级
  • iostat 等,如果你想把它踢老派的话。
  • 如果您挖掘,/proc/和/sys 中的信息量相当大
  • ioapps - IO 追踪
  • lsof 可用于跟踪卡住的套接字和文件句柄
  • 系统统计
  • pmap
  • iptraf
  • tcpdump
  • perftools - CPU 和内存分析
  • bootchart
  • QEMU 可以托管 ARM 内核/二进制文件,并且可以从外部进行检测。多次证明它对我很有用。
  • 使用 gcc Hook 手动检测

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

关于performance - 在 ARM 开发板上测量应用程序性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9299985/

相关文章:

c++ - Buildroot 包需要一个带 C++ 的工具链,大文件错误

GCC [对于 ARM] 强制没有浮点

node.js - 寻找一种更好的方法来进行实时库存更新

javascript - 比较列表时我的 Node.js 会锁定吗?

macos - 运行 arm-elf-gcc 编译代码时出现段错误

linux - BSD套接字不工作

C++ 程序以代码 01 退出,未执行任何代码

GCC for ARM -- ELF 输出文件段错位

javascript - UIWebView 性能与 JS onclick 功能

Python:为什么 * 和 ** 比/和 sqrt() 快?