| By John Reichard | Article Rating: |
|
| December 22, 2005 09:45 PM EST | Reads: |
37,653 |
A proper solution for accurate timing of code under test is to combine a performance analysis tool with an automated testing solution to produce highly accurate and repeatable timing data. Measuring CPU cycles and execution time with precise granularity makes it possible to attribute relevant timing data to each appropriate line of Java code, method, or class in the application. It also measures separately the time a Java application spends executing library code, virtual machine code, and underlying system code.
Load testing a feature-complete application in a preproduction environment is one of the best predictors of real-world application performance, and has become a common practice for delivering enterprise-class business applications. It is in this environment that an enterprise application's ability to scale to peak user loads while maintaining required service levels can be tested and measured.
Automated load testing tools not only require far fewer humans than manual testing, but also provide the opportunity to stress-test an application by scaling the number of virtual users to a level beyond anticipated use. The result is a very powerful testing solution that no enterprise software organization should be without.
Production Deployment
Performance problems that arise in production have an immediate impact on the business, and need to be dealt with quickly and effectively. Unfortunately, once an application goes live, it is in the domain of IT operations, out of the reach of developers and their application-centric tools. Network analysts, systems analysts, and other support staff monitor the infrastructure in which the application runs, and possibly even the application server container in which it runs, but have little knowledge about the health of the J2EE application.
When a production application falls below required service levels, an alert may be triggered or calls may begin to flood the help desk. In either case, IT analysts take notice. They look at server, database, and network utilization, but rarely come up with a root cause in short order. Once they figure out that everything seems to be "performing normally" in the infrastructure, the development organization is consulted. While operations can confirm that an application has slowed to a crawl, there is usually very little useful information they can offer the developers.
Application performance monitoring tools are ideally suited to bridging the gap between IT operations and development in application triage scenarios like the one described above. They provide continuous monitoring of J2EE application performance and resource utilization without impacting production-level performance.
Application Performance Management
Once an application or portfolio of applications has been deployed with acceptable performance results, ongoing monitoring and management of applications and infrastructure is an important factor for documenting service-level agreement compliance and ensuring sustained application performance. Although this topic is out of scope for this article, it is certainly worth mentioning as an epilogue.
Many organizations measure service only at the device level, leaving performance issues undetected until users begin to complain. When service delivery is approached as an integrated whole, IT organizations must not only manage infrastructure performance, but must also manage application-service levels in order to meet business demands and priorities. To accomplish this, IT organizations need proper tools to:
- Measure end-user experience of application availability and response times
- Prioritize performance issues based on their business impact
- Systematically resolve problems via accurate analysis of performance issues
- Monitor and analyze application performance automatically and continuously across the client, network, server, and database tiers
- Capture performance analysis information at the time of service-level exceptions
- Integrate all monitoring and measurements into useful, management-level reports that expedite service and support, and reduce confusion and delay.
Conclusion
Creating and sustaining application performance and availability in today's complex distributed computing environments calls for a life-cycle process to ensure application performance, and the proper tools to solve problems quickly through collaboration across IT disciplines. Enterprise application performance planning must begin at the earliest possible stage, preferably at the business-unit level, even prior to technical requirements and analysis. Clearly defined performance requirements are the best insurance that application performance will be considered from architecture and design, through development and QA, and on into the production environment.
Software defects, both functional and performance-related, are extremely expensive to fix once an application has reached production. By adhering to best practices at each stage of the application life cycle, application performance can be optimized properly at each stage, avoiding costly downtime and application brownouts.
Compuware Software Solutions
Compuware offers a wide range of products and services that help IT organizations meet application performance requirements throughout the application life cycle.
- Optimal J: Model-driven development for Java
- DevPartner Java Edition: Comprehensive application development, debugging and tuning
- QACenter Performance Edition: Automated performance testing for accuracy and scalability
- Vantage: Service management through integrated monitoring and performance analysis
Published December 22, 2005 Reads 37,653
Copyright © 2005 SYS-CON Media, Inc. — All Rights Reserved.
Syndicated stories and blog feeds, all rights reserved by the author.
More Stories By John Reichard
John Reichard is a senior technical specialist for Compuware Corporation.
![]() |
JDJ News Desk 12/22/05 10:58:23 PM EST | |||
Managing Java Performance Across the Application Life Cycle |
||||
- Kindle 2 vs Nook
- Why IBM’s Server Chief Got Busted
- Is Cloud Computing Like Teenage Sex?
- Industry Experts Discuss the State of Cloud Computing
- Performance Tuning Essentials for Java
- Confessions of a Ulitzer Addict
- Tactical Cloud Computing Panel at 1st Annual GovIT Expo
- It's the Java vs. C++ Shootout Revisited!
- Cloud Computing Can Revitalize Your Career as Software Developer
- IBM Could "Reinvent" Java: Mills
- Oracle & Cloud Computing: Exclusive Q&A with SVP Richard Sarwal
- A Brief History of Cloud Computing
- Kindle 2 vs Nook
- Cloud CEOs, CTOs & SVPs to Speak at 4th International Cloud Computing Expo
- Why IBM’s Server Chief Got Busted
- Is Cloud Computing Like Teenage Sex?
- Industry Experts Discuss the State of Cloud Computing
- Performance Tuning Essentials for Java
- The Difference Between Web Hosting and Cloud Computing
- Cloud Computing Expo: Exclusive Q&A with Yahoo! SVP Cloud Computing
- Ajax in RichFaces 3.3, JSF 2 and RichFaces 4
- Confessions of a Ulitzer Addict
- My Thoughts on Ulitzer
- Tactical Cloud Computing Panel at 1st Annual GovIT Expo
- A Cup of AJAX? Nay, Just Regular Java Please
- Java Developer's Journal Exclusive: 2006 "JDJ Editors' Choice" Awards
- The i-Technology Right Stuff
- JavaServer Faces (JSF) vs Struts
- Rich Internet Applications with Adobe Flex 2 and Java
- Java vs C++ "Shootout" Revisited
- Bean-Managed Persistence Using a Proxy List
- Reporting Made Easy with JasperReports and Hibernate
- Creating a Pet Store Application with JavaServer Faces, Spring, and Hibernate
- What's New in Eclipse?
- Why Do 'Cool Kids' Choose Ruby or PHP to Build Websites Instead of Java?
- i-Technology Predictions for 2007: Where's It All Headed?









































