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:
2 comments
Hey Peter,
Would you mind posting the D code you used for profiling Eclipse?
Jeroen
Jeroenl
It’s an example D script from Bryan Cantrills blog, I slightly modified it to work with the latest version of the java probes (what used to be djvm is dvm now):
———————————————————
#pragma D option quiet
dvm$target:::method-entry
/copyinstr(arg1) == "<init>"/
{
@[basename(copyinstr(arg0))] = count();
}
profile:::tick-1sec
{
trunc(@, 20);
printf("%-70s %8sn", "CLASS", "COUNT");
printa("%-70s %8@dn", @);
printf("n");
clear(@);
}
———————————————————
Peter Hendriks