我有一个在嵌入式处理器(ARM)上运行的应用程序,我想分析应用程序,以了解它在哪里使用系统资源,如CPU,内存,IO等。应用程序正在运行在Linux之上,所以我假设有许多可用的分析应用程序。有没有人有任何建议?
谢谢!
编辑:我还应该添加我们使用的Linux版本有些旧(2.6.18)。不幸的是,我现在对此没有多少控制权。
答案 0 :(得分:2)
答案 1 :(得分:2)
正如bobah所说,gprof和valgrind很有用。您可能还想尝试OProfile。如果您的应用程序是使用C ++(如标记所示),您可能需要考虑禁用异常(如果您的编译器允许)并避免动态转换,如上面sashang所述。另请参阅Embedded C++。
答案 2 :(得分:0)
在相关的说明中,C ++工作组对各种C ++语言功能的性能成本进行了技术报告。例如,他们分析动态广播一个或两个级别的成本。这里的报告http://www.open-std.org/jtc1/sc22/wg21/docs/TR18015.pdf可能会让您深入了解嵌入式应用程序可能存在的痛点。
答案 3 :(得分:0)
假设您正在测试的程序非常有用,那么可能会修剪调用树,因此优化的最佳机会是您可以删除或避免的函数/方法调用。该链接显示了找到它们的好方法。
许多人认为这是一种测量时间的分层调查过程。 或者你可以简单地在行为中抓住它,这就是我所做的。