How do I know what causes I / O in my application?

Good afternoon,

I inherited some C # code a few years ago. I reworked it a bit to be asynchronous. After evaluating the impact of my changes on processor performance, I used Process Explorer to see roughly what my application is doing. To my surprise, it seems to do what Process Explorer reports as I / O. In general, this is due to disk I / O or network I / O. Based on what I see in the code, I cannot understand the explicit call to either of these two input / output sources.

My question is: What is the best way to determine which section of code is causing I / O? We use dotTrace from JetBrains to profile our application, but as far as I can tell, it only handles processor and memory performance.

Thanks in advance for any pointers.

Hi,

Eric

+3
source share
4 answers

Process Monitor may be your answer. See the following StackOverflow question for more information.

How can I profile file input / output?

Based on this answer, you can find a solution for the file name of any public or written files found in Process Monitor.

+5

stackshot, , , .

+2

- , .net (, FileStream ..)

, , .

+1

Process Monitor, Win7 ( " ", , Vista) , -. Read/Write Total ( win7). , .

0

Source: https://habr.com/ru/post/1772945/


All Articles