分析IO绑定的C#应用程序
我如何配置一个执行大量IO的C#应用程序分析IO绑定的C#应用程序,c#,profiler,C#,Profiler,我如何配置一个执行大量IO的C#应用程序 我尝试过ANTS和JetBrains,但它们似乎不能很好地处理IO绑定的应用程序,而是报告CPU密集型任务我发现区分两个目标很有用——只是测量,而不是实际定位代码中的瓶颈 对于后者,我发现它是最有效的 我的大部分工作都是在大型C#应用程序中进行的,随着人们工作的进行,性能问题总是悄然出现——有时是I/O受限,有时不是。 无论如何,该方法会立即找到它们。VisualStudio2010中的并发可视化工具可以帮助识别IO瓶颈严重的区域 “线程视图”显示应用程
我尝试过ANTS和JetBrains,但它们似乎不能很好地处理IO绑定的应用程序,而是报告CPU密集型任务我发现区分两个目标很有用——只是测量,而不是实际定位代码中的瓶颈 对于后者,我发现它是最有效的 我的大部分工作都是在大型C#应用程序中进行的,随着人们工作的进行,性能问题总是悄然出现——有时是I/O受限,有时不是。
无论如何,该方法会立即找到它们。VisualStudio2010中的并发可视化工具可以帮助识别IO瓶颈严重的区域 “线程视图”显示应用程序中所有线程的时间线,颜色表示不同类型的活动。当线程在IO上阻塞时(例如文件、网络等),它将显示紫色。如果单击其中一个段,您将看到线程在IO上阻塞的调用堆栈。在下图中,选择了同步(红色)段,堆栈显示在“当前堆栈”面板中 还有代表每个磁盘的通道,它们将显示读/写操作,单击其中一个段将显示该段所代表的文件操作 比如说, 时间线下方是一些报告,您可以通过单击“可见时间线配置文件”中的项目来访问这些报告。它们将向您显示可见时间线内各种活动的聚合堆栈,以便您可以看到大部分IO阻塞发生的堆栈。类似地,“文件操作”报告将显示可见时间线中的读/写操作 “文件操作”报告如下所示:
有关更多信息,请查看或Hazim Shafi的或。受I/O限制:您的意思是您(有意)大量读取/写入文件,还是您正在处理大量不适合内存的数据,因此要分析其外部内存行为?