Silhouette Example

The WHAM Tools are used as part of a performance tuning methodology that has been proven to work by numerous customers as well as WHAM's consultants over the years. The process begins by understanding the application architecture and then collecting the appropriate data during load test, functional tests or even in production problem situations.

In cases where CPU usage is a signifcant contributtion to the response time of an application or where resource usage needs to be minimized, WHAM has noted that the practice of CPU profiling is quite helpful in identifying the appropriate locations for code tuning. CPU profiling is the process of taking regularly spaced samples of the current instruction locaion/address under execution for a program and mapping them back to the libraries, functions, and lines of code in the program.

The analysis of the samples can be by time, by function, or a combination of both if timestamps are also recorded. The longer the program runs and the more samples are collected, the better is the estimate of the distribution of the CPU usage in the program. There are commercial tools that enable this for UNIX systems and there is a system utility called prof/gprof that allows a developer to do code profiling under UNIX. The weakness of these tools is that they require recompiling the application and insert additional code in order to trace caller/callee relationships. The result is a program that uses almost two times the CPU. This means that profiling is generally not possible for applications that are in system test or production. So it is left up to developers to do this analysis and if they don't there isn't much recourse for integrators.

WHAM has remedied this situation by creating a code-profiling capability that doesn't require recompling or relinking in any way and can be run against an applicaiton that is already up and running such as a production or test environment. In addition, since WHAM collects timestapms with the instruction address (IA) values, the changes in CPU profile with respect to time can be analyzed. This is quite useful in testing various different loads applied to an application. The WHAM profiling agent is non-intrusive and uses at most .5% of the system resources to accomplish a sampling of all CPUs at a rate of 1000 samples per second.

The WHAM Profiling agent can profile Java applications to the method level. This too is accomplished in a non-intrusive fashion. Commercial Java profiling tools do not use CPU sampling but instead measure latency by taking timestamps at the entry and exit from each method. This means that two samples per method call must be recorded and additionally, all the storage for this is part of the application memory footprint. The additional overhead introduced by Java profilers far exceeds 2x as in the compiled applications on UNIX. Typically, a java profiler will increase the time taken for an application to run by a factor of five to ten.

The WHAM Profiling agent is the tool that integrators and system analysts have long needed in order to get a handle on CPU hogs. This data can be used by an objective observer to make criticisms of CPU heavy applications. Developers are put off by profiling because it is a significant extra effort. Consider that the turnaround time to make and test a change is two to ten times as long when standard profiling tools are used. This means a 50% to 90% reduction in productivity is associated with code profiling. The result is that typically, applications are not tuned and timelines are addressed with more/faster hardware. WHAM can save your organization time and money if you use our non-intrusive profiling tools.

The following demo highlights some of the important features of the WHAM Profiling agent through the Silhouette toolset.

To Continue with the demo press this arrow  




home | company | products | services | downloads | news & events | partners

WHAM Engineering & Software
Austin, Texas: (888) 852-9426    info@wham.com
  Copyright © 2000-2003 WHAM Engineering & Software