解决通信时序问题(C ++ windows app)

时间:2011-05-10 19:04:16

标签: c++ windows multithreading performance

我有一个“遗留”(为我们解决这个问题)应用程序与嵌入式设备进行通信 - 它由外部OEM应用程序驱动,该应用程序使用此“app”重新启动汽车的电子控制单元(ECU) - >通过USB端口与汽车ECU通信 - >一些通过设备 - >汽车ECU。

似乎存在一些时间问题(通话/响应通常不会超过100毫秒),我想知道你推荐什么来衡量这一切。我认为这种问题的记录器当然是有帮助的,但正如我所理解/看到的还有很多线程和可能的同步。当然,线程可能会带来一些问题。有没有办法可以对线程/同步相关的时间有一个“整体”的看法?例如,如果线程存在一些同步问题,那么分析器(示例数据)可以告诉我等待/同步所涉及的时序吗?我使用Visual Studio 2008,但我认为如果能提供更多帮助,我也可以使用VS 2010。

您是否建议使用Visual Studio Profiler(需要团队版?)或是否有其他内容(也可能是免费的)? 感谢

-Ghita

1 个答案:

答案 0 :(得分:0)

这个问题已经有很长一段时间了。这个问题的解决方案是:“在内存记录器中完成(只在”分析“/程序结束时刷新信息)。” 回顾一下这已经足够好了,但现在几天在Windows上的表现方式将是使用Windows事件跟踪(ETW),因为这会将日志记录提供程序与事件跟踪信息的使用者分离,甚至会导致日志记录崩溃应用程序不会影响日志记录(直到产生实际崩溃的点)。它还具有其他性能优势,据称它能够生成应用程序生成的数千个事件而不会出现明显的性能下降。