A team of us has put together a bunch of Cool Tools that add on to Sun Studio 11. They address what I think are fundamental tasks in application development.
- The Binary Instrumentation Tool (BIT), is a technology that instruments a compiled binary enabling the collection of count data. By count data I mean the number of times a routine is called, or the number of times a basic block of code is executed.
- Automatic Tuning and Troubleshooting System (ATS). This is very cool - it has saved me countless hours tracking down bugs! It enables the recompilation (under different compiler flags) of an application without(and that's the cool thing!) the source code to the application. There are a number of things that can be done with this. The most obvious being to pick the best compiler flags for the application (best meaning something like fastest running, or smallest code size). Another thing that this can do is given an application that fails under a particular optimisation flag, ATS can narrow down and report the failing code module.
- Simple Performance Optimisation Tool (spot). This is something that scratches an itch of mine. It can be quite a hard task to figure out exactly what is limiting the performance of an application - or to figure out where the time is being spent. The idea with spot was to make this task as simple as possible:
spot <app> <parameters>
Then generate a report of exactly what the application was doing, where the time was going, and what were the hot-spots in the code. The report is output as a set of html pages - which turn out to have a couple of benefits. First of all the pages are archived so you can go back and look at how an application was built or what the hot code was. The second is that you can mail the URL of a particular bit of code to someone and ask their opinion.
This set of tools is not supported, but there are forums where you can post questions or make suggestions.
[ T: OpenSPARC ]