Thursday, April 23, 2009
JPicus - Java(TM) I/O analysis framework
Java(TM) is already a mature technology with plenty of tools supporting the development process. One of the things that is missing though is I/O analysis. Not a long time ago I was in a situation that I needed a tool for I/O analysis in order to track the origin of some leaking file handles. I searched the net for such a tool several times but I couldn't find anything suitable so I decided to create the tool myself. My first prototype was using the native JVMTI method entry and exit events. This was pretty simple to implement and the prototype worked initially but it turned out not to be the best approach. After reading several articles about JVMTI, I found out that the recommended way to use it is bytecode instrumentation. The benefit of this is that the JVM can run at full speed and even optimize (JIT) the bytecodes that you insert in the profiled application. Bytecode instrumentation was a rather new area to me so I decided to give it a try. That is how the JPicus Java(TM) I/O analysis framework was born. For more information see my page on the SAP developer network.