Recently I did some work to determine were latency was being added for a particular use-case. Luckily, I was able to builb my testcase by subclassing every part I wanted to instrument to add instrumentation. The instrumentation was simple, placing timestamps into a hashmap, keyed by the name of the location in the code. Obviously this is not the best way of doing this. You don't always have the opportunity to subclass the most important locations. More flexible solutions would be:
1) JInspired's JXInsight
2) An aspect-orientated library or standard Java instrumentation to instrument every method
3) DTrace with Java
26 April 2008
23 April 2008
latest vm parameters I use
-Dlog4j.configuration=resources/log.xml
-ea
-mx784M
-server
-Dcom.sun.management.jmxremote
-XX:+UseConcMarkSweepGC
-XX:+ExplicitGCInvokesConcurrent
-verbose:gc
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps
-XX:+HeapDumpOnOutOfMemoryError
-XX:+PrintConcurrentLocks
-XX:+TraceClassLoading
-XX:+PrintCompilation
-XX:+TraceClassUnloading
-Xbootclasspath/p:C:\sekhonp\it\libs\jdkdebug1_6_0_10.jar
-agentlib:yjpagent
-Djavax.net.debug=true
-ea
-mx784M
-server
-Dcom.sun.management.jmxremote
-XX:+UseConcMarkSweepGC
-XX:+ExplicitGCInvokesConcurrent
-verbose:gc
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps
-XX:+HeapDumpOnOutOfMemoryError
-XX:+PrintConcurrentLocks
-XX:+TraceClassLoading
-XX:+PrintCompilation
-XX:+TraceClassUnloading
-Xbootclasspath/p:C:\sekhonp\it\libs\jdkdebug1_6_0_10.jar
-agentlib:yjpagent
-Djavax.net.debug=true
20 April 2008
07 April 2008
Subscribe to:
Posts (Atom)