General
i) Turn on trace class loading from the
java command line to see which classes are loaded.
ii) turn on gc logging and look at the results in gc viewer.
iii) Get a hprof using jmap or jcmd (in your jdk) and examine the results in visualvm (in your jdk) or EclipseMat (free). In Eclipse mat run the leak suspects report.
For performance always set Xmx to same value as Xms.
If you have a huge number of classes (and have to have) set -XX:PermSize also (same value as max) each resize of permgen will full GC,
you should be able to see this in your GC logs.
After that you are really into tuning the collector but its very dependent on what collector you are using ;-)
Good Luck.
"Eagles may soar but weasels don't get sucked into jet engines" SCJP 1.6, SCWCD 1.4, SCJD 1.5,SCBCD 5