如何使用.. QNX Momentics Application Profiler?

时间:2015-11-14 20:40:26

标签: profiling performance-testing profiler qnx

我想在时间方面描述我的(多线程)应用程序。应该经常重新激活某些线程,即线程在每个固定时间间隔执行一次主要作业。换句话说,有一个固定的时间片,其中所有线程都被重新激活。

更准确地说,我希望某些线程每2ms激活一次(因为这是循环周期)。我做了一些简化的测量,证实2ms确实有效。

为了更准确地分析我的应用程序,似乎适合使用Momentics的工具“Application Profiler”。 但是,当我这样做时,我无法解释我选择的时间数字。我会对 min min 以及 max 时间感兴趣之前某个线程是重新激活。到目前为止,我们的想法是只能监控某些功能占用的时间。然而,即便如此也不是这样。例如。我有两行代码,它们彼此相邻:

if (var1 && var2 && var3) var5=1;需要1毫秒(平均)

if (var4) var5=0;需要5毫秒(平均)

enter image description here

那应该告诉我什么?

另一件事让我感到困惑 - 父线程在 avg 上“花费”33ms,在 max 上花费2ms,在 min 上花费1ms。除了 avg 不应该大于 max 这一事实(即更多我希望 avg 不大于2ms - 因为这是循环时间),它实际上增加了我运行分析工具的时间越长。所以,如果我将该工具运行半小时,那么33ms实际上就像是120s。因此,似乎 avg 实际上是线程占用CPU的时间。

enter image description here

如果是这种情况,我会假设能够使用 count 数字来抵消总时间,而这个数字也不起作用。主要是由于该数字几乎从未可用 - 即只有一个单独的列表条目(对于每个父线程)称为 ,它不代表特定的进程范围。

enter image description here

所以,我读了关于"Application Profiler"的QNX社区维基,包括。有关"New IDE Application Profiler Enhancements"的手册,以及有关如何使用profiler工具的官方手册文章......但我无法弄清楚如何使用该工具来满足我的兴趣。

底线:我很确定我误解并误用了该工具的用途。因此,我的问题是 - 我如何解释数字或正确使用工具的反馈来确认我的2ms周期时间?

其他信息

  • CPU:单核
  • QNX SDP 6.5 / Momentics 4.7.0
  • 分析方法:采样和呼叫计数检测
  • 概要范围:单一申请
  • 我在构建选项 1
  • 中启用了“构建用于分析(采样和调用计数工具)”

1 个答案:

答案 0 :(得分:1)

System Profiler应该可以满足您的需求。它挂钩到微内核,让你看到系统上所有线程的状态。我在类似的设置中使用它来找出我们的系统出现意外超时的情况。 (原因是关键线程上的页面等待。)