【问题标题】:Measure application performance on ARM development board在 ARM 开发板上测量应用程序性能
【发布时间】:2012-02-15 19:31:46
【问题描述】:

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

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

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

【问题讨论】:

    标签: performance embedded arm embedded-linux ubuntu-11.10


    【解决方案1】:

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

    • 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 挂钩手动检测

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

    【讨论】:

    • 谢谢。关于 systemtap 需要多少努力来设置它以进行性能测量的任何想法?你用过oprofile,你说的我应该考虑一下吗?
    • 我只读过关于系统点击的文章,但我喜欢我读到的内容。 oprofile 有点重量级和神秘,但那是 3 年前的事了。如果我不得不再次执行此任务,如果 systemtap 内核设置可用,我将首先开始沿着这条路走。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-13
    • 1970-01-01
    • 2013-04-18
    相关资源
    最近更新 更多