User Tools

Site Tools


using-jp2-to-instrument-programs-based-on-apache-felix

This is an old revision of the document!


JP2 is a Java Profiler developed by Binder et al. 1). It can be used to count the executed bytecode number to estimate the CPU consumption of a Java program. To do that, we need to modify the command executing the Java program like this:

java -Xmx2g \
    -javaagent:$JP2_HOME/lib/javaagent.jar \
    -Xbootclasspath/p:$JP2_HOME/lib/Thread_JP2.jar:$JP2_HOME/lib/asm-all-3.3.jar:$JP2_HOME/lib/jp2.jar \
    -Dch.usi.dag.jp2.Output="program.output.gz" \
    -Dch.usi.dag.jp2.InstrumentedClasses="ProgramInstrumented" \
    -Dch.usi.dag.jp2.UninstrumentedClasses="ProgramUninstrumented" \
    -cp YourClasspath YourMainClass 

Felix is an Apache implementation of the OSGi specifications which define a dynamic service deployment framework 2). The basic idea of OSGi is providing a framework on which the service implementations or bundles are plugged. The framework handles the service requests and responses. Each bundle communicates only with the framework. SIP communications is a Java VoIP and instant messaging client using Felix.

While using JP2 to count the executed bytecode number of SIP communicator, we met

1)
W. Binder and J. Hulaas, “Using bytecode instruction counting as portable cpu consumption metric”, Electronic Notes In Theoretical Computer Science, vol. 153, pp. 57-77, May 2006.
using-jp2-to-instrument-programs-based-on-apache-felix.1299043178.txt.gz · Last modified: 2019/10/06 20:37 (external edit)