Java Based

  1. Check the JVM command line arguments for monitoring memory or generating a profile.

  2. Take a small Java program, create a profile and inspect it with the java profiler

  3. Download an Eclipse profiling plug-in (sourceforge.com or eclipse.org) and generate a detailed call-graph and memory usage diagram. Which method takes most of the time? Which one uses the most memory?

  4. Get your favorite Java debugger and try setting breakpoints. Can you find the calling hierarchy (stack)? How many threads do you have? Monitor the value of a variable in a for or while loop. Dump the values of local class members of a class.

  5. Dump the bytecode of your java program using jprof.

  6. Use a decompiler (DJ) to recreate the java code from your program.