Have you ever opened up Windows Task Manager and looked at all the nifty columns you can add through the options menu item?
Recently I was forced to do this and we noticed that IO Other and IO Other Bytes were spiking at alarming rates (along with our CPU usage). There are other columns for IO Reads and IO Writes, those are pretty self explanatory (and they weren't moving). But I had no idea what would cause those IO Other and IO Other Bytes columns to even accumulate data so I did some investigating.
Accessing file information like exists, canRead, canWrite, lastModified, directory listing, etc is what causes IO Other to increase. Basically accessing attributes on the file.
Accessing file pointers and seeking to a new location in the file will cause the IO Other Bytes column to increase. Basically "moving over" or maybe "counting" bytes without reading actually reading them.
Depending on which object I was using, getting the length had an effect also. The java class File.length() caused the IO Other to go up, while the java class RandomAccessFile.length() caused the IO Other Bytes to go up.
This was not exhaustive by any means, but it did give me a good idea on what those values mean and why they would accumulate.
Whoa, that's interesting! I didn't realize there were other columns (mainly cause I mostly use Win 7 now, and it's process monitor is way cooler than XP).
ReplyDeleteVery cool about the IO Other column. If you think about it, its pretty sweet that they track to that level of detail.