Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/137.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
解决通信定时问题(C++windows应用程序)_C++_Windows_Multithreading_Performance - Fatal编程技术网

解决通信定时问题(C++windows应用程序)

解决通信定时问题(C++windows应用程序),c++,windows,multithreading,performance,C++,Windows,Multithreading,Performance,我有一个为美国解决这个问题的遗留应用程序,它与嵌入式设备通信-它由一个外部OEM应用程序驱动,该应用程序使用此应用程序重新启动汽车电子控制单元ECU->通过USB端口->一些直通设备->汽车ECU与汽车ECU通信 这里似乎存在一些计时问题,呼叫/响应通常不能超过100毫秒,我想知道您建议如何测量所有这些。我想,针对此类问题的记录器当然会有所帮助,但正如我所了解/看到的,其中还涉及大量线程和可能的同步。线程当然会带来一些问题。有没有一种方法可以让我全面了解与线程/同步相关的时间安排?例如,如果线程

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

这里似乎存在一些计时问题,呼叫/响应通常不能超过100毫秒,我想知道您建议如何测量所有这些。我想,针对此类问题的记录器当然会有所帮助,但正如我所了解/看到的,其中还涉及大量线程和可能的同步。线程当然会带来一些问题。有没有一种方法可以让我全面了解与线程/同步相关的时间安排?例如,如果线程存在一些同步问题,那么采样数据的探查器是否可以告诉我等待/同步所涉及的时间?我使用的是VisualStudio2008,但我认为如果VS2010能提供更多帮助的话,我也可以使用它

您是否建议Visual Studio Profiler需要团队版?为了这个,或者还有其他可能免费的东西吗? 谢谢


-吉塔

这个问题已经讨论了很长时间了。这个问题的解决方案是:在内存中使用一个记录器,只在分析/程序结束时刷新信息。
回顾过去,这已经足够好了,但现在Windows上注重性能的方式将是使用Windows ETW的事件跟踪,因为这将使日志记录提供程序与事件跟踪信息的使用者分离,这样即使日志记录应用程序崩溃也不会影响日志记录,直到实际崩溃为止产生。它还有其他性能优势,可以说它能够在不出现明显性能下降的情况下由producer应用程序生成数千个事件。

您能在调试器下运行代码吗?100毫秒是一个巨大的时间。。。我认为你正在追逐一些大的东西,仅仅在有趣的地方放置一些日志应该足以找到问题所在……6502,通过日志记录,我也打算解决这个问题。完成一个只在分析/程序结束时刷新信息的内存记录器。希望它能帮助我理解足够的代码来检测热点。