Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.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
分析IO绑定的C#应用程序_C#_Profiler - Fatal编程技术网

分析IO绑定的C#应用程序

分析IO绑定的C#应用程序,c#,profiler,C#,Profiler,我如何配置一个执行大量IO的C#应用程序 我尝试过ANTS和JetBrains,但它们似乎不能很好地处理IO绑定的应用程序,而是报告CPU密集型任务我发现区分两个目标很有用——只是测量,而不是实际定位代码中的瓶颈 对于后者,我发现它是最有效的 我的大部分工作都是在大型C#应用程序中进行的,随着人们工作的进行,性能问题总是悄然出现——有时是I/O受限,有时不是。 无论如何,该方法会立即找到它们。VisualStudio2010中的并发可视化工具可以帮助识别IO瓶颈严重的区域 “线程视图”显示应用程

我如何配置一个执行大量IO的C#应用程序


我尝试过ANTS和JetBrains,但它们似乎不能很好地处理IO绑定的应用程序,而是报告CPU密集型任务

我发现区分两个目标很有用——只是测量,而不是实际定位代码中的瓶颈

对于后者,我发现它是最有效的

我的大部分工作都是在大型C#应用程序中进行的,随着人们工作的进行,性能问题总是悄然出现——有时是I/O受限,有时不是。
无论如何,该方法会立即找到它们。

VisualStudio2010中的并发可视化工具可以帮助识别IO瓶颈严重的区域

“线程视图”显示应用程序中所有线程的时间线,颜色表示不同类型的活动。当线程在IO上阻塞时(例如文件、网络等),它将显示紫色。如果单击其中一个段,您将看到线程在IO上阻塞的调用堆栈。在下图中,选择了同步(红色)段,堆栈显示在“当前堆栈”面板中

还有代表每个磁盘的通道,它们将显示读/写操作,单击其中一个段将显示该段所代表的文件操作

比如说,

时间线下方是一些报告,您可以通过单击“可见时间线配置文件”中的项目来访问这些报告。它们将向您显示可见时间线内各种活动的聚合堆栈,以便您可以看到大部分IO阻塞发生的堆栈。类似地,“文件操作”报告将显示可见时间线中的读/写操作

“文件操作”报告如下所示:


有关更多信息,请查看或Hazim Shafi的或。

受I/O限制:您的意思是您(有意)大量读取/写入文件,还是您正在处理大量不适合内存的数据,因此要分析其外部内存行为?