Status

--
enhancement
RESOLVED INVALID
17 years ago
14 years ago

People

(Reporter: brant, Assigned: jrgmorrison)

Tracking

Trunk
x86
Windows XP

Firefox Tracking Flags

(Not tracked)

Details

(Reporter)

Description

17 years ago
I ran a program that attaches itself to another program and looks for 
bottlenecks in its internal workings.  Here are the results:
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 1 minutes, 52 seconds, Analyzer 
monitored the use of 671,738 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 11 and an average of 11 threads of execution, mozilla.exe 
consumed 9 seconds of processing time or 8% utilization of the processing 
resources on a single-processor system.  The light load of this run may hide 
problems that appear only when the application is under stress.  A heavier 
load, if possible, would produce a better assessment. However, 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:
94,259,596 bytes of memory were allocated in 671,738 objects at a rate of 
5,997 objects/sec.
In managing these objects, there were 1,327,404 attempts to acquire the heap 
lock at rate of 11,851 attempts/sec.
Acquisition of the heap lock represents 76% of 1,742,814 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 11 on a single-processor 
system.
In 1,742,814 attempts to acquire a lock, threads were blocked 421 times, or in 
0.02% of the attempts, at a rate of 3 contentions/sec.
In 1,327,404 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 
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 10,260,620 bytes.  At program 
termination, the footprint was 1,180,864 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 AuditSM 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? 
<http://www.sdtimes.com/opinions/guestview_026.htm>” 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 AuditSM.
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.

The second Report:
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 AuditSM 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? 
<http://www.sdtimes.com/opinions/guestview_026.htm>” 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 AuditSM.
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.
to jrgm to look at
Assignee: asa → jrgm
Status: UNCONFIRMED → NEW
Ever confirmed: true
(Assignee)

Comment 2

17 years ago
> 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.

Woohoo!!

Er, well, hrmm, that's not right.

But, isn't this tool oriented to server apps, as opposed to client gui apps.


(Reporter)

Comment 3

17 years ago
Yes, I believe the tool appears to be targeted to server apps, but reliability 
is always an issue whether or not it is running on a server or a home/client 
system.
(Reporter)

Comment 4

17 years ago
I am marking this invalid since long runs of Mozilla while Geodesic Analyzer was
attached caused crashes so results might be invalid anyway.
Status: NEW → RESOLVED
Last Resolved: 17 years ago
Resolution: --- → INVALID
Product: Browser → Seamonkey
You need to log in before you can comment on or make changes to this bug.