【问题标题】:How to profile a GUI application with a message queue?如何使用消息队列分析 GUI 应用程序?
【发布时间】:2015-12-08 01:08:30
【问题描述】:

我想分析一个使用消息队列的 GUI 应用程序。在分析器结果窗口中,我看到 80% 的样本都在消息循环处理代码中。是否可以以某种方式过滤掉我只看到我可以影响的代码的结果?

我正在使用 Visual Studio 2013 C++ 分析器。

【问题讨论】:

  • 如果大部分时间都花在消息循环中,那么似乎没有太多的性能改进。您是否发现 GUI 响应有问题?您可以使用其他数据收集方法,也许采样对您的应用程序来说不是一个好方法。请参阅How to: Choose Collection Methods,它适用于 VS 2015,但可能对 VS 2013 有帮助。
  • 所以,您的意思是说,应用程序的某些部分由您处理,而消息队列处理线程/代码不在您的控制之下??
  • @basav 在应用程序代码中,我只有事件处理程序,例如MyFancyButton::OnButtonClicked 和 GUI 框架(在我的例子中是 wxWidgets)实现消息队列。

标签: c++ visual-studio message-queue profiler


【解决方案1】:

我可能会做的是获取每个事件处理程序并在其中放置一个临时的外部循环,以使其花费比通常更长的时间。 它需要运行足够长的时间才能使用manual sampling

这允许在事件处理程序中找到任何可能的加速。 在这些修复之后,外部循环被移除,代码就飞起来了!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-11
    • 2014-04-09
    • 2018-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-13
    • 2015-10-18
    相关资源
    最近更新 更多