Title: Geodesic Analyzer™ Report
Subject: Performance and Reliability Assessment
Author: Geodesic Systems, Inc.
Last saved by: David Stuckmann

Geodesic Analyzer™ Assessment of mozilla.exe

Geodesic Analyzer™
Performance and Reliability Assessment 
of 
mozilla.exe
2001-12-07

Generated by: 
Name: 
Company: 
Phone: 
Email:
Copyright © 2001 Geodesic Systems, Inc.

Table of Contents
1	Executive Summary
1.1	Scope
1.2	Method
1.3	Results
2	Detailed Findings
2.1	Throughput
2.2	Multi-processor Scalability
2.3	Application Footprint
2.4	Data Integrity
3	Geodesic Solutions
3.1	Solution Overview
3.2	Solution Recommendation

^1	^Executive ^Summary
1.1	Scope
This document was generated on 2001-12-07 by Geodesic Analyzer™ as an assessment of the mozilla.exe application.  The purpose of this assessment is to identify performance bottlenecks and reliability risks in the mozilla.exe software.  Analyzer reports on performance characteristics such as throughput and scalability.  It also reports on reliability issues such as footprint growth and data integrity.  Based upon the findings, Analyzer may make recommendations for improving the overall performance and reliability of the mozilla.exe application.
1.2	Method
To identify the bottlenecks and risks associated with application software, Analyzer installs itself at runtime as an in-process agent.  As with all of Geodesic’s products, Analyzer integrates seamlessly with application software.  No changes to source code were required to integrate Analyzer with the mozilla.exe application.
1.3	Results
The short execution time of this run has limited the ability of Analyzer to provide a comprehensive assessment.  A longer run, if possible, will produce better results.  However, over a period of 23 seconds, Analyzer monitored the use of 363,541 objects by the mozilla.exe software and has made the following assessment of the application’s performance and reliability:
·	Dynamic memory management is a throughput bottleneck.
·	Multi-processor scalability is poor.
·	Footprint growth appears moderate and stable.
·	Data integrity looks good.
These summary results are supported and qualified in Section 2, Detailed Findings.  In Section 3, Geodesic Solutions, an overview of products and services offered by Geodesic System, Inc is provided.  This test indicates that mozilla.exe can significantly benefit from Geodesic products.  See Section 3.2, Solution Recommendation, for specific recommendations.
^2	^Detailed ^Findings
With a maximum of 12 and an average of 12 threads of execution, mozilla.exe consumed 5 seconds of processing time or 24% utilization of the processing resources on a single-processor system.  The following sections detail the findings of the assessment for this run.
2.1	Throughput
Many factors can affect the throughput of an application.  In making its assessment of throughput, Analyzer looks at managed resources with a focus on dynamic memory.  Dynamic memory is the set of memory objects a program allocates at runtime and the most common managed resource.  Memory objects are typically organized in a single heap with access synchronized through a single lock.  Throughput of this system can significantly affect application performance.
In assessing throughput, the following data points were collected:
·	67,068,208 bytes of memory were allocated in 363,541 objects at a rate of 15,806 objects/sec.
·	In managing these objects, there were 724,412 attempts to acquire the heap lock at rate of 31,496 attempts/sec.
·	Acquisition of the heap lock represents 79% of 909,248 total lock acquisitions.
This data indicates that management of dynamic memory is a major throughput bottleneck when compared with other managed resources.
2.2	Multi-processor Scalability
Multi-processor scalability is the ability of an application to increase throughput as processors increase.  Scaling throughput on multiple processors requires maximizing parallel execution while minimizing contention for resources.  Analyzer measures contention for resources managed by locks, a primary limiting factor for multi-processor scalability.
In assessing multi-processor scalability, the following data points were collected:
·	The average number of threads per processor was 12 on a single-processor system.
·	In 909,248 attempts to acquire a lock, threads were blocked 321 times, or in 0.03% of the attempts, at a rate of 13 contentions/sec.
·	In 724,412 attempts to acquire the heap lock, threads were never blocked.
This data indicates that contention for the heap is not a significant scalability issue.  However, overall lock contention appears to be a significant scalability bottleneck.
2.3	Application Footprint
An application’s footprint is typically very dynamic and consists of program code, static memory, live memory and leaked memory.  Live memory is dynamic memory in use by a program.  Leaked memory is former live memory, which has not been returned to the system.  Steady growth of live memory may indicate application bloat, which is the uncontrolled allocation of linked data structures and is generally considered a design issue.  Memory leaks are a serious problem that can drain a system of resources, but which also can be easily resolved with garbage collection.  Left unresolved, application bloat and memory leaks will reduce capacity and may ultimately cause the application to crash.
During this assessment, the following data points regarding the application footprint were gathered:
·	The application’s footprint peaked at 9,125,828 bytes.  At program termination, the footprint was 441,812 bytes.
·	This footprint consists entirely of live memory; no memory leaks were detected.
Based on this data, the following conclusions about the application footprint can be drawn: Application bloat and memory leaks do not appear to be issues.
2.4	Data Integrity
Many points of risk can affect the integrity of application data.  In making its assessment of data integrity, Analyzer looks at two common scenarios: fence-post overwrites and use of invalid and obsolete pointers.  Fence-post overwrites are boundary overwrites or the accidental destruction of the data immediately proceeding or following an intended memory object.  Invalid and obsolete pointers are memory addresses, which do not correspond to an allocated memory object.  Use of these pointers to address memory can have unpredictable results.  Analyzer recognizes this potential problem by watching for attempts to free memory using these pointers.
·	No fence-post overwrites were detected.
·	No invalid or obsolete pointers were detected.
With regard to these points, data integrity looks good.
^3	^Geodesic ^Solutions
3.1	Solution Overview
Geodesic Systems offers consulting services and software products that help you ensure the reliability of your critical applications while improving overall performance:
·	Geodesic Uptime Audit^SM provides a detailed assessment of software performance and reliability.  An on-site consultant will focus our expertise on your critical applications, identify reliability risks and performance bottlenecks and will provide offer specific remedial recommendations.
·	Great Circle^® is a runtime diagnostic tool with a web-browser interface that profiles your application’s performance and helps you pinpoint problems by providing symbolic stack traces with direct links to source code.
·	Geodesic REMIDI™ High Performance is a runtime performance solution that integrates into your application just as easily as Analyzer and automatically improves your application’s throughput with dramatic improvements in Symmetric Multi-Processing (SMP) scalability!
·	Geodesic REMIDI™ High Availability is a runtime performance and reliability solution that incorporates the performance benefits of our High Performance solution with real-time remediation of the common software problems identified by our diagnostic tools – without any changes to source code!
For more information on how Geodesic Systems can dramatically improve the performance and reliability of your application software, visit our web site at http://www.geodesic.com.  The following section offers specific recommendations based on the assessment presented above.
3.2	Solution Recommendation
With respect to the assessment presented above for the mozilla.exe application, the following recommendation is offered:
·	Geodesic REMIDI™ High Performance SMP will immediately improve the throughput and increase SMP scalability of the mozilla.exe application.
·	Whether or not specific problems were identified during this brief run, Geodesic products could provide you with valuable insurance and peace of mind against unforeseen or future errors as described in our article “High-Wire Applications Without a Safety Net?” in SD Times.
Based on this report, if you feel that your company would benefit from a more extensive assessment, please send appropriate contact information to info@geodesic.com or call us at +1 (800) 360-8388.  A Geodesic representative will be available to handle your product requests or to schedule a Geodesic Uptime Audit^SM.
If you have questions or concerns about the content of this assessment or the behavior of Analyzer, please send a copy of this report with appropriate contact information to support@geodesic.com.
*REMIDI is a product of Geodesic Systems, Inc., which is not affiliated in any way with Remedy Corporation.

Copyright © 2001 Geodesic Systems, Inc.	Page  of 	 10/26/01