I blogged several month ago about Memory Analyzer allowing to profile the memory of a running JVM. I also asked about time performances in this old post … and I give up the idea to profile my plugins time performances …
This week one colleague asked me about the way Eclipse manages class loading. In fact he was trying to set up JIP profiler in order to profile his Eclipse plugins. The class loading question comes from the fact that “JIP adds aspects to every method of every class that you want to profile” using byte code injection.
After investigations we concluded that it’s impossible to use this profiler to profile Eclipse Plugins. The fact that Eclipse uses a dedicated class loader for each plugin and the fact that it’s impossible to tell JIP to only profile a given subset of classess of a given JVM result in the famous NoClassDefFoundError. More informations available here.
Then I remembered that Markus Kohler told me here to have a look on Yourkit profiler. After a quick look on the available features I am not sure to be able to profile plugins with this profiler … ??
We are now setting up TPTP in order to profile our Eclipse plugins. Next round in the coming weeks …
Furthermore we would be interested in any experiences about plugin profiling.
Manu
September 11, 2008 at 5:06 pm |
Hi Manu,
I have experimented with the trial version of YourKit some time ago. It works very well with Eclipse plug-ins. What I liked best is that it is a lightweight and very responsive (swing) application, but still has great integration with Eclipse (i.e. show me the source for this method, etc.).
Give it a shot, it’s worth it.
Regards,
Elias.
September 12, 2008 at 5:43 am |
We’re using YourKit to profile all of RSA, it should do what you need. I am yet to hear of anybody doing anything useful with TPTP.
September 14, 2008 at 7:57 pm |
Hi,
Yes Yourkit in sampling mode should work in any case, because it does not do any byte code tracing, but rather is based on thread sampling,
Regards,
Markus
September 26, 2008 at 3:20 pm |
[...] Plugin Profiling Part 2 Following my last post about plugin profiling here are the step to follow to install TPTP in order to profile time [...]