我正在构建一个高性能的多线程程序。一些函数的持续时间和执行的重叠非常重要,我希望以某种方式生成一种可视时间线图,显示函数开始的时间及其持续时间。我希望得到类似于 NVIDIA 分析器图表的东西。使用这个boost::chrono
包我已经收集了时间线,但找不到任何软件或 API 来绘制它们。有人知道吗?
问候
丹尼尔
我正在构建一个高性能的多线程程序。一些函数的持续时间和执行的重叠非常重要,我希望以某种方式生成一种可视时间线图,显示函数开始的时间及其持续时间。我希望得到类似于 NVIDIA 分析器图表的东西。使用这个boost::chrono
包我已经收集了时间线,但找不到任何软件或 API 来绘制它们。有人知道吗?
问候
丹尼尔
看看kcachegrind,我认为它可以满足您的需求。这里有一些截图。
如果您不想使用 callgrind 并且希望自己生成图表,请考虑使用Graphviz。使用 graphviz 生成图形所需要做的就是以简单的文本格式创建图形描述。
如果您有“Microsoft Visual Studio 2012 Professional(或更高版本)”并在 Windows 上运行程序,Concurrency Visualizer可能会很有用。该工具甚至可以在时间轴上对 C++ 应用程序的线程/cpu 利用率进行分析和可视化。
另请参阅MSDN 博客。