Solaris, Eclipse, DTrace and Java

I managed to get Solaris 10 1/06 running on my Dell C640 laptop. The Solaris team solved a lot of rough edges in this new version, making it more desktop/laptop friendly. In the process though, they imported a bug from the Xorg team, making the desktop crash & burn on the Radeon 7500 Mobility graphics card inside my laptop. Fortunately, there is a workaround available in the bug report. After figuring out how VI works I hacked some config files from the console, and Solaris runs great now.

I wanted to DTrace some stuff on Solaris now that it is up and running, and found a nice non-trivial application to play around with: Eclipse! Although not officially supported, you can make work it on Solaris 10 x86 using the instructions in this bug report, and it runs great! Next I downloaded the DTrace probes at the DTrace VM agents java.net project, and tried some DTrace runs on Eclipse.

One of the main problems when profiling/tracing is that it usually slows the app down to a point it is no longer usable. This is especially a problem with an interactive application like Eclipse. Using the DTrace probes did impact the performance noticably, but it was still fast enough to use the interface. When profiling Eclipse plug-ins, DTrace will be a great tool, since you can aggregate all kinds of Java and native probes and do really powerful traces. Here is a screen shot of it all in action, the top right terminal shows all object allocations by Eclipse in the last second: