Skip Navigation Links | |
Exit Print View | |
Oracle Solaris Studio 12.2: Simple Performance Optimization Tool (SPOT) User's Guide |
1. The Simple Performance Optimization Tool (SPOT)
Binaries Must Be Prepared Correctly
The role of SPOT is complementary to running the application under the Oracle Solaris Studio Performance Analyzer, and looking at the resulting experiment. The profile generated by the Analyzer tells you where the time was spent in running your application. In certain situations, however, you may not be able to diagnose your application's problems just by examining its profile.
Some problems that cannot easily be solved by inspecting the application profile are:
Is the time spent in the routine high because the routine itself is slow, or because the routine is called a large number of times?
Is a line of code taking time because it misses cache or because it misses the translation lookaside buffer (TLB)?
Are traps slowing down the application?
Is the application reaching a memory bandwidth limit?
While you might be able to identify the causes of these issues by looking at the application's profile and running additional tools, you might not know what tools are available or which specific tool to use.
SPOT simplifies the process of performance analysis by running an application under a common set of tools and producing HTML reports of its findings, which provides the following benefits:
By creating reports in HTML format, SPOT lets you place the reports on a server that can be accessed by an entire development team. For example, a SPOT report can be examined by remote colleagues, or referred to during a meeting. You could even email a URL of a particular line of source code, or disassembly, to a colleague for further review.
The SPOT report archives the compiler build commands as well as the profile for the active parts of the application. By comparing the current application profile with an older profile, you can easily check for changed code or changed compiler build flags.
SPOT can also profile the application according to the most frequently occurring hardware events, indicating which routines are encountering which problems.