java - How can I profile file I/O? -


Our creation is annoyingly slow, it's built with a Java system, and I'm running my Windows XP. Depending on the hardware, it can take 5 to 15 minutes to complete.

To see the overall performance metrics on the machine, as well as to incorporate the differences in hardware at the time of creation, this indicates that the process is bound to I / O. It also shows that compared to writing process Much reads.

However, I do not have a good way of determining which files are being read or written, and how many times. My suspicion is that with many subsequent invoices of subproducts and compilers, the construction is to re-read several commonly used libraries.

What are some profile tools that will tell me what file is given from which process is it? Good for free, but not necessarily.


I was able to confirm my doubts: Almost all the disk activity was studying in libraries and reading again, J.D.K's "Jar of RT" and other at the top of the list Libraries I can not make enough RAM disks to capture all the libraries used, but the "most" libraries on RAM discs cut down by about 40%; Clearly, Windows File System caching is not doing a great job, even though I have asked Windows to optimize for it.

I have noticed that one interesting thing is that the typical 'reading' operation on a file is only a few dozen bytes; Generally there are two or three of these, after which leave several kilobytes in the file. It was not bad for bulk reading.

I am going to do more tests with all of my third-party libraries on flash drives, and see what effect

If you need only for Windows, then SysInternals should show that you want to know everything You can select, then go as much as you can to each operation and see the essence of file operation.


Comments