I'am looking at a performance problem that showed up between two release (this is a windows app). What I observe is that the version that is slower is doing more I/O than the previous one ( I have observed this with process explorer (see graph below)) when the other one do none or very few, and the I/O are correlated with less cpu activity. So I am guessing that the performance loss come from the I/O.
But as the code is quite big, and shared by different team, it's not easy to spot what as changed. Moreover the gap between the two version is also important. From what I'am concerned this two versions should still to the same kind of job... so knowing that this app is doing file + DB access, does anybody knows a way (or a tool) to spot which portion of code may be involved into a significant I/O activity ?
I have try some profiler (ltprof) but without much luck so far. I have try to do some statistic debugging (pausing every few second) to see what the callstack is), but as the I/O seems to take a minor % of the process (say less < 15%), again I don't have find anything relevant so far.
Any idea greatly appreciated.