SlideShare a Scribd company logo
1 of 11
Identifying Software Performance
Bottlenecks using Diagnostic tools
W H I T E P A P E R
Abstract
In this white paper, Impetus Technologies focuses on software
performance diagnostic tools and how they enable rapid
bottleneck identification. It discusses server-side and client-side
diagnostics, including pluggable diagnostic tools and custom
solutions across various scenarios.
The white paper also touches on the benefits of adopting
diagnostics, such as enhanced collaboration and application
visibility.
Impetus Technologies, Inc.
www.impetus.com
Identifying Software Performance Bottlenecks using Diagnostic tools
2
Table of Contents
Introduction...........................................................................................................3
The importance of Diagnostic tools.......................................................................3
How diagnostic tools work?...................................................................................5
Impetus’ approach to server-side diagnostics.......................................................7
Impetus’ solution for client side diagnostics .........................................................9
Benefits offered by Diagnostics tools ..................................................................10
Summary..............................................................................................................11
Identifying Software Performance Bottlenecks using Diagnostic tools
3
Introduction
Identifying bottlenecks and performance snags in applications is becoming
critical for organizations today. Typically, this is undertaken using load test
results. The performance engineering team detects problem areas by executing
performance tests, and the test results, including problem areas, transaction
response times, and system monitoring data are then shared with the
development team. The development team identifies system bottlenecks using
resource monitoring data and helps in the tuning of system components. These
recommendations are then shared with the performance engineering team,
that validates the same with performance tests.
However, identifying code level bottlenecks is a challenging task for the
development team. It may find it difficult to analyze and comprehend the test
results, as they are based on user transactions. Also, development
environments are vastly different from test environments in terms of memory
and processing power.
Organizations are therefore on the lookout for solutions that can help them
reduce the iterations between the performance engineers and the development
teams and speed up the process of identifying and isolating code bottlenecks.
They are keen to find ways by which they can map user transaction results to
the method and query level, so that the development team can be helped in its
analysis. Diagnostics tools can help companies address these issues.
The Importance of Diagnostic Tools
Diagnostic tools map the user-centric business transactions to method calls,
thereby providing a developer-centric view of the test results. These tools are
beneficial for the following reasons:
• They can drill down the transaction response time into underlying
methods, queries and service calls to components; and provide
response time break-down across different sub-components.
• They follow the path of the user transaction and gather performance
data throughout its lifetime.
• They enable the development team to analyze these statistics along
with the method trace, and isolate the bottlenecks. This provides an
intuitive, easy-to-use view, of how individual tiers, components,
memory, and SQL statements impact the overall performance of a
business process under load conditions; and facilitates deeper analysis.
Identifying Software Performance Bottlenecks using Diagnostic tools
4
• They can be integrated with the available load testing solutions and
effectively used in test environments.
• They can be used in production to set up a continuous performance
monitoring mechanism, due to their low overheads.
However it is important to differentiate between the terms ‘diagnostic tools,’
and ‘profilers,’ which are often used by teams interchangeably. The fact is that
these are two different sets of tools with different purposes.
Profilers are more suited for fine-grained analysis and usually have more
overheads than diagnostic tools. This makes them inappropriate for multi-user
tests. Diagnostic tools on the other hand, can be used for multi-user load tests,
as well as, production monitoring. Their main purpose is to isolate the code
bottlenecks and provide relevant information. The development team can use
Profilers to explore these isolated problem areas and figure out their root cause.
Essentially, Profilers and Diagnostic tools complement each other.
Identifying Software Performance Bottlenecks using Diagnostic tools
5
How Diagnostic Tools Work?
Diagnostic tools can be used in multiple environments including development,
test, staging and production. However, they are most widely used in a load-
testing environment.
Figure 1 How Diagnostic Tools Work
Diagnostics can be applied to the app server, as well as the client-side, including
the browser and mobile device. Diagnostic tools have two major components—
the Diagnostic agent and Diagnostic server.
The Diagnostic agent runs on the target component and hooks up with it, using
byte code instrumentation. It gathers performance statistics and starts
transmitting the data to the server. The agent runs in the same runtime as that
of the target component.
Identifying Software Performance Bottlenecks using Diagnostic tools
6
The Diagnostic server is responsible for collecting the raw data, aggregating it
and storing it in the result repository. The user can then generate multiple
graphs and reports; and monitor the application performance in real time as
well as perform an offline analysis.
Server side diagnostics
There are different scenarios where diagnostic tools can be used. Key among
them is server side diagnostics. In this particular scenario, Diagnostic tools are
used to identify critical issues in the server components. These may include the
application server, database server, Web server, messaging server, among
others. The performance engineering team can choose between plug-in tools or
custom tools.
Plug-in Diagnostic tools
Plug-in Diagnostic tools are integrated with the load testing tool. There are also
situations where companies have to create a custom diagnostic harness to
support some specific technology or requirement. These tools do not integrate
with any load testing tool and work in isolation.
Plug-in tools are used as an extension to existing load testing tools. Their major
advantage is that they can integrate diagnostic data with test results. The
business processes, in this case, can be mapped to method and query calls.
Depending on the path of the user transaction in the application, the
distribution of response time is provided.
This makes analysis easier for the development team. The team can not only
identify the method execution times but also verify any redundant method calls.
The diagnostics configuration is handled by the load testing tool. The methods
that need to be monitored are included as a part of the test scripts that are
executed.
Custom Diagnostic tools
Standalone Diagnostic tools work independently, monitoring the performance
statistics of the target application, as well as mapping the method and query
details to the request URLs as received by the server component.
These tools are installed and configured separately in the target environment.
They are well suited to work with existing load testing tools and test scripts.
Depending on the technology requirements, a custom tool might be created
that can work during the load tests and provide performance monitoring.
There are a few Open Source utilities that are also available for the same.
Glassbox, and Infrared are some of popular tools in this category.
Identifying Software Performance Bottlenecks using Diagnostic tools
7
Impetus’ Approach to Server-Side Diagnostics
Impetus Technologies has evolved an approach to server-side diagnostics that it
has used effectively in multiple customer engagements.
The first and the most important step are selecting the appropriate Diagnostic
tool. The choice is of course between a plug-in tool or creating a custom
solution, which in turn depends on several factors, including the following:
• The technology being used. If no existing tool is available for the
technology stack being used in the application, it becomes imperative to
create a custom solution using available Aspect oriented frameworks.
• The objective of using Diagnostic tools. If the objective is to use these
during load testing activities, organizations can choose either plug-in or
custom tools. However, if the objective is to continuously monitor
performance, there is need for standalone tools.
• The budget. If the budget is a constraint, organizations can opt for
Open Source or freely available tools. Else, they can go for specialized
tools that provide rich analysis capabilities and are more user-friendly.
After selecting the tool and configuring it in the target environment, Impetus
recommends that performance teams measure the overhead in terms of CPU
utilization and impact on response times. It is possible to control this overhead
by setting up the appropriate filters so that only the specific methods can be
monitored. This is very important in case of the production monitoring
mechanism because companies may not want to have a high impact of the
Diagnostic tool on the environment.
After the tool is properly configured and calibrated, it is possible to run load
tests with the diagnostics on. The test results along with the diagnostic results
can then be analyzed to get insights on the performance of the complete
application.
This includes information such as top 10 methods by execution time, method
hot spots, costliest queries, etc.
Client side diagnostics
Diagnostic tools can also be used to identify client side performance snags,
covering desktop clients, such as browsers; and the apps running on mobile
devices. This is extremely important as client side performance greatly impacts
the end user experience.
Identifying Software Performance Bottlenecks using Diagnostic tools
8
Mobile Diagnostics
Mobile diagnostics refers to the measurement of the performance of a mobile
application on a device. This is a challenging task for performance engineers.
Due to the lack of resources on the device, the performance of an application
can degrade drastically. Also, the application may behave differently on
different devices, as well as technologies.
By using diagnostic tools, performance engineering teams can arrive at method
execution times on the mobile device and log the same. This may help in
analyzing the expensive methods.
There aren’t many diagnostic tools available in the mobile space. Profilers,
including J2ME profilers, Android Trace, etc. have to be used, which are specific
to different technologies and are mostly deployed by the development teams.
However, in order to address specific requirements, it is preferable that teams
create custom diagnostic solutions.
Browser Diagnostics
Internet technologies running applications also face issues. Today, rich Internet
applications are available that have been built using AJAX, HTML5, FLEX,
SilverLight, jQuery and similar technologies. These also present performance
challenges to Web developers. It is really difficult to identify bottlenecks on the
browser that can impact the end-user experience. Diagnostic tools can help in
this process.
Most of the client-side diagnostic tools are plug-ins to popular browsers. These
can be integrated with the browser and provide all the statistics related to page
rendering, Java script executions, memory, CPU utilization, etc. Some of the
popular diagnostic plug-ins includes Firebug for Mozilla, Speedtrace for Chrome,
HttpWatch for IE.
There are other set of tools, including Dynatrace Ajax Edition, that work
independently and extract the above information from the browser. These have
more features and provide dashboards and fine grained analysis for identifying
any existing issues.
Identifying Software Performance Bottlenecks using Diagnostic tools
9
Impetus’ Solution for Client Side Diagnostics
Not too many tools are available for mobile diagnostics, as multiple
technologies and platforms exist, and no single tool can serve the purpose. It is
better to create custom diagnostic solutions that address specific requirements
of mobile applications.
In few engagements, Impetus has used Aspect-oriented frameworks to build a
diagnostic utility for mobile applications on the devices. The AOP frameworks
like AspectMe for J2ME and AspectLUA for LUA can be used for this purpose.
These frameworks use byte code instrumentation to inject hooks into the target
application and measure runtime statistics, such as method timing and memory
utilization. A set of re-usable aspects can be created that can be hooked into the
important method calls or UI rendering calls to track their performance
statistics.
The aspects can be inserted using application binaries and hence there is no
need to undertake any code changes. The methods to be monitored are
specified at the time of instrumentation.
In order to perform diagnostics for browsers to identify performance
bottlenecks, we recommend installing proper plug-ins and configuring these to
collect performance statistics during browsing session.
The plug-in gathers all the relevant details and makes them available to the
performance testing team. The team can then analyze the results to identify
bottlenecks related to page loading, Java script execution, memory leaks, CPU
utilization, etc.
In one of our engagement by just tuning client side components, application
performance, especially the end user experience, was improved by almost 40%.
Identifying Software Performance Bottlenecks using Diagnostic tools
10
Benefits Offered by Diagnostics Tools
Diagnostic tools offer a range of benefits to performance testing and
development teams within organizations, including the following:
• Identification and isolation of performance bottlenecks, which may be
components, methods, or SQL statements. This in turn, assists in
resolving memory, exception, or other problems swiftly, thereby,
reducing the efforts of the development team.
• Complete application visibility across the lifecycle, ensuring higher
quality when applications go live. They also help reduce the Mean Time
to Resolution in the application deployment environment.
• Documentation of the root cause of any performance or stability issues,
including the offending line of code, even in complex, highly distributed
applications. The performance testers do not need any programming
knowledge or access to source code to deliver an offline diagnosis
report that allows development to efficiently resolve issues.
• Effective collaboration between performance engineers and the
development team, due to the availability of detailed test results. This
reduces the multiple iterations between both the teams and speeds up
the problem resolution time.
• Improvement in the productivity of the Development team, including
developers, architects and database engineers. The time-intensive,
tedious, error prone and often impossible process of manually
correlating log files, from different back-end systems with the client-
side load testing results, becomes obsolete. This significantly
accelerates the problem resolution time.
• Inbuilt intelligence and suggestions for teams based on best practices.
Also, some of the tools can be directly integrated with the developer’s
environment and pinpoint the bottleneck at the code level itself.
Identifying Software Performance Bottlenecks using Diagnostic tools
11
Summary
In summary, it can be said that Diagnostic tools can do a lot to improve
application performance, by identifying the bottlenecks. Also, companies must
learn to differentiate between Diagnostic tools and Profilers that are not
interchangeable, but rather complementary to each other. Profilers have high
overheads and are better suited for fine-grained analysis.
Organizations can use Diagnostic tools in multiple environments including
development, test, staging and production. It is very essential for companies to
embrace Diagnostics in their performance engineering strategies to enhance
visibility across applications and improve collaboration among various
stakeholders.
It is possible to build custom diagnostics solutions to address specific
requirements. These can be installed and configured separately in the target
environment and are well suited to work with existing load testing tools and test
scripts.
It is also advisable to minimize the overheads by applying filters on the
methods, or URLs that have to be monitored. It is a good practice to calibrate
the overheads of the Diagnostic tools in the test environment by running a few
sanity tests
About Impetus
Impetus is a Software Solutions and Services Company with deep
technical maturity that brings you thought leadership, proactive
innovation, and a track record of success. Our Services and Solutions
portfolio includes Carrier grade large systems, Big Data, Cloud,
Enterprise Mobility, and Test and Performance Engineering.
Website: www.impetus.com | Email: inquiry@impetus.com
© 2013 Impetus Technologies, Inc.
All rights reserved. Product and
company names mentioned herein
may be trademarks of their
respective companies. May 2013

More Related Content

What's hot

Automated testing-whitepaper
Automated testing-whitepaperAutomated testing-whitepaper
Automated testing-whitepaperimdurgesh
 
Chapter 1 - Requirement Engineering
Chapter 1 - Requirement EngineeringChapter 1 - Requirement Engineering
Chapter 1 - Requirement EngineeringNeeraj Kumar Singh
 
Chapter 6 - Test Tools and Automation
Chapter 6 - Test Tools and AutomationChapter 6 - Test Tools and Automation
Chapter 6 - Test Tools and AutomationNeeraj Kumar Singh
 
Ch8-Software Engineering 9
Ch8-Software Engineering 9Ch8-Software Engineering 9
Ch8-Software Engineering 9Ian Sommerville
 
Chapter 2 - Preparing for Test Automation
Chapter 2 - Preparing for Test AutomationChapter 2 - Preparing for Test Automation
Chapter 2 - Preparing for Test AutomationNeeraj Kumar Singh
 
Software Testing Principles
Software Testing PrinciplesSoftware Testing Principles
Software Testing PrinciplesKanoah
 
Sdd Testing & Evaluating
Sdd Testing & EvaluatingSdd Testing & Evaluating
Sdd Testing & Evaluatingmary_ramsay
 
Chapter 2 - Performance Measurement Fundamentals
Chapter 2 - Performance Measurement FundamentalsChapter 2 - Performance Measurement Fundamentals
Chapter 2 - Performance Measurement FundamentalsNeeraj Kumar Singh
 
Software testing
Software testingSoftware testing
Software testingRavi Dasari
 
Chapter 4 - Deployment Risks and Contingencies
Chapter 4 - Deployment Risks and ContingenciesChapter 4 - Deployment Risks and Contingencies
Chapter 4 - Deployment Risks and ContingenciesNeeraj Kumar Singh
 
Tools support for testing
Tools support for testingTools support for testing
Tools support for testingNathandisya
 
Categories of test design techniques
Categories of test design techniquesCategories of test design techniques
Categories of test design techniquesZuliar Efendi
 
Pairwise testing
Pairwise testingPairwise testing
Pairwise testingKanoah
 
Test Environment Management
Test Environment ManagementTest Environment Management
Test Environment ManagementKanoah
 

What's hot (20)

Application Performance Testing Checklist
Application Performance Testing ChecklistApplication Performance Testing Checklist
Application Performance Testing Checklist
 
Automated testing-whitepaper
Automated testing-whitepaperAutomated testing-whitepaper
Automated testing-whitepaper
 
Chapter 1 - Requirement Engineering
Chapter 1 - Requirement EngineeringChapter 1 - Requirement Engineering
Chapter 1 - Requirement Engineering
 
Chapter 6 - Test Tools and Automation
Chapter 6 - Test Tools and AutomationChapter 6 - Test Tools and Automation
Chapter 6 - Test Tools and Automation
 
Ch8-Software Engineering 9
Ch8-Software Engineering 9Ch8-Software Engineering 9
Ch8-Software Engineering 9
 
Chapter 2 - Preparing for Test Automation
Chapter 2 - Preparing for Test AutomationChapter 2 - Preparing for Test Automation
Chapter 2 - Preparing for Test Automation
 
Chapter 3 - Reviews
Chapter 3 - ReviewsChapter 3 - Reviews
Chapter 3 - Reviews
 
Istqb chapter 5
Istqb chapter 5Istqb chapter 5
Istqb chapter 5
 
Software Testing Principles
Software Testing PrinciplesSoftware Testing Principles
Software Testing Principles
 
Sdd Testing & Evaluating
Sdd Testing & EvaluatingSdd Testing & Evaluating
Sdd Testing & Evaluating
 
Chapter 2 - Performance Measurement Fundamentals
Chapter 2 - Performance Measurement FundamentalsChapter 2 - Performance Measurement Fundamentals
Chapter 2 - Performance Measurement Fundamentals
 
Neeraj_Kumar
Neeraj_KumarNeeraj_Kumar
Neeraj_Kumar
 
Software testing
Software testingSoftware testing
Software testing
 
Chapter 4 - Deployment Risks and Contingencies
Chapter 4 - Deployment Risks and ContingenciesChapter 4 - Deployment Risks and Contingencies
Chapter 4 - Deployment Risks and Contingencies
 
Tools support for testing
Tools support for testingTools support for testing
Tools support for testing
 
Categories of test design techniques
Categories of test design techniquesCategories of test design techniques
Categories of test design techniques
 
Pairwise testing
Pairwise testingPairwise testing
Pairwise testing
 
Test Environment Management
Test Environment ManagementTest Environment Management
Test Environment Management
 
Chapter 2 - Test Management
Chapter 2 - Test ManagementChapter 2 - Test Management
Chapter 2 - Test Management
 
Test plan
Test planTest plan
Test plan
 

Similar to Identifying Software Performance Bottlenecks Using Diagnostic Tools- Impetus White Paper

38475471 qa-and-software-testing-interview-questions-and-answers
38475471 qa-and-software-testing-interview-questions-and-answers38475471 qa-and-software-testing-interview-questions-and-answers
38475471 qa-and-software-testing-interview-questions-and-answersMaria FutureThoughts
 
Learn software testing with tech partnerz 3
Learn software testing with tech partnerz 3Learn software testing with tech partnerz 3
Learn software testing with tech partnerz 3Techpartnerz
 
Ready, Set, Automate - Best Practices in Using Automated Tools for Validation
Ready, Set, Automate - Best Practices in Using Automated Tools for ValidationReady, Set, Automate - Best Practices in Using Automated Tools for Validation
Ready, Set, Automate - Best Practices in Using Automated Tools for ValidationCovance
 
Defect effort prediction models in software
Defect effort prediction models in softwareDefect effort prediction models in software
Defect effort prediction models in softwareIAEME Publication
 
A Comparative Guide to Automation and Manual Testing.pdf
A Comparative Guide to Automation and Manual Testing.pdfA Comparative Guide to Automation and Manual Testing.pdf
A Comparative Guide to Automation and Manual Testing.pdfkalichargn70th171
 
Software testing & Quality Assurance
Software testing & Quality Assurance Software testing & Quality Assurance
Software testing & Quality Assurance Webtech Learning
 
Welingkar_final project_ppt_IMPORTANCE & NEED FOR TESTING
Welingkar_final project_ppt_IMPORTANCE & NEED FOR TESTINGWelingkar_final project_ppt_IMPORTANCE & NEED FOR TESTING
Welingkar_final project_ppt_IMPORTANCE & NEED FOR TESTINGSachin Pathania
 
Software Testing Interview Questions For Experienced
Software Testing Interview Questions For ExperiencedSoftware Testing Interview Questions For Experienced
Software Testing Interview Questions For Experiencedzynofustechnology
 
Software testing
Software testingSoftware testing
Software testingAeroqube
 
Non-Functional testing
Non-Functional testingNon-Functional testing
Non-Functional testingKanoah
 
3Audit Software & Tools.pptx
3Audit Software & Tools.pptx3Audit Software & Tools.pptx
3Audit Software & Tools.pptxjack952975
 
Understanding Test Environments Management
Understanding Test Environments ManagementUnderstanding Test Environments Management
Understanding Test Environments ManagementEnov8
 
Software Testing Data Kart and Integrated Pipeline Approach
Software Testing Data Kart and Integrated Pipeline ApproachSoftware Testing Data Kart and Integrated Pipeline Approach
Software Testing Data Kart and Integrated Pipeline ApproachYogeshIJTSRD
 
Top 10 Practices for Software Testing in 2023.pptx
Top 10 Practices for Software Testing in 2023.pptxTop 10 Practices for Software Testing in 2023.pptx
Top 10 Practices for Software Testing in 2023.pptxOprim Solutions
 
Tool-Support-For-Testing-Section-6.pptx
Tool-Support-For-Testing-Section-6.pptxTool-Support-For-Testing-Section-6.pptx
Tool-Support-For-Testing-Section-6.pptxDarshanaVatsalSavali
 
Introduction to software testing
Introduction to software testingIntroduction to software testing
Introduction to software testingVenkat Alagarsamy
 

Similar to Identifying Software Performance Bottlenecks Using Diagnostic Tools- Impetus White Paper (20)

38475471 qa-and-software-testing-interview-questions-and-answers
38475471 qa-and-software-testing-interview-questions-and-answers38475471 qa-and-software-testing-interview-questions-and-answers
38475471 qa-and-software-testing-interview-questions-and-answers
 
Learn software testing with tech partnerz 3
Learn software testing with tech partnerz 3Learn software testing with tech partnerz 3
Learn software testing with tech partnerz 3
 
Ready, Set, Automate - Best Practices in Using Automated Tools for Validation
Ready, Set, Automate - Best Practices in Using Automated Tools for ValidationReady, Set, Automate - Best Practices in Using Automated Tools for Validation
Ready, Set, Automate - Best Practices in Using Automated Tools for Validation
 
Chapter 5 - Tools
Chapter 5 - ToolsChapter 5 - Tools
Chapter 5 - Tools
 
Defect effort prediction models in software
Defect effort prediction models in softwareDefect effort prediction models in software
Defect effort prediction models in software
 
A Comparative Guide to Automation and Manual Testing.pdf
A Comparative Guide to Automation and Manual Testing.pdfA Comparative Guide to Automation and Manual Testing.pdf
A Comparative Guide to Automation and Manual Testing.pdf
 
Software testing & Quality Assurance
Software testing & Quality Assurance Software testing & Quality Assurance
Software testing & Quality Assurance
 
SOFTWARE TESTING
SOFTWARE TESTINGSOFTWARE TESTING
SOFTWARE TESTING
 
Unit 5 st ppt
Unit 5 st pptUnit 5 st ppt
Unit 5 st ppt
 
Welingkar_final project_ppt_IMPORTANCE & NEED FOR TESTING
Welingkar_final project_ppt_IMPORTANCE & NEED FOR TESTINGWelingkar_final project_ppt_IMPORTANCE & NEED FOR TESTING
Welingkar_final project_ppt_IMPORTANCE & NEED FOR TESTING
 
6. Testing Guidelines
6. Testing Guidelines6. Testing Guidelines
6. Testing Guidelines
 
Software Testing Interview Questions For Experienced
Software Testing Interview Questions For ExperiencedSoftware Testing Interview Questions For Experienced
Software Testing Interview Questions For Experienced
 
Software testing
Software testingSoftware testing
Software testing
 
Non-Functional testing
Non-Functional testingNon-Functional testing
Non-Functional testing
 
3Audit Software & Tools.pptx
3Audit Software & Tools.pptx3Audit Software & Tools.pptx
3Audit Software & Tools.pptx
 
Understanding Test Environments Management
Understanding Test Environments ManagementUnderstanding Test Environments Management
Understanding Test Environments Management
 
Software Testing Data Kart and Integrated Pipeline Approach
Software Testing Data Kart and Integrated Pipeline ApproachSoftware Testing Data Kart and Integrated Pipeline Approach
Software Testing Data Kart and Integrated Pipeline Approach
 
Top 10 Practices for Software Testing in 2023.pptx
Top 10 Practices for Software Testing in 2023.pptxTop 10 Practices for Software Testing in 2023.pptx
Top 10 Practices for Software Testing in 2023.pptx
 
Tool-Support-For-Testing-Section-6.pptx
Tool-Support-For-Testing-Section-6.pptxTool-Support-For-Testing-Section-6.pptx
Tool-Support-For-Testing-Section-6.pptx
 
Introduction to software testing
Introduction to software testingIntroduction to software testing
Introduction to software testing
 

More from Impetus Technologies

Data Warehouse Modernization Webinar Series- Critical Trends, Implementation ...
Data Warehouse Modernization Webinar Series- Critical Trends, Implementation ...Data Warehouse Modernization Webinar Series- Critical Trends, Implementation ...
Data Warehouse Modernization Webinar Series- Critical Trends, Implementation ...Impetus Technologies
 
Future-Proof Your Streaming Analytics Architecture- StreamAnalytix Webinar
Future-Proof Your Streaming Analytics Architecture- StreamAnalytix WebinarFuture-Proof Your Streaming Analytics Architecture- StreamAnalytix Webinar
Future-Proof Your Streaming Analytics Architecture- StreamAnalytix WebinarImpetus Technologies
 
Building Real-time Streaming Apps in Minutes- Impetus Webinar
Building Real-time Streaming Apps in Minutes- Impetus WebinarBuilding Real-time Streaming Apps in Minutes- Impetus Webinar
Building Real-time Streaming Apps in Minutes- Impetus WebinarImpetus Technologies
 
Smart Enterprise Big Data Bus for the Modern Responsive Enterprise- StreamAna...
Smart Enterprise Big Data Bus for the Modern Responsive Enterprise- StreamAna...Smart Enterprise Big Data Bus for the Modern Responsive Enterprise- StreamAna...
Smart Enterprise Big Data Bus for the Modern Responsive Enterprise- StreamAna...Impetus Technologies
 
Impetus White Paper- Handling Data Corruption in Elasticsearch
Impetus White Paper- Handling  Data Corruption  in ElasticsearchImpetus White Paper- Handling  Data Corruption  in Elasticsearch
Impetus White Paper- Handling Data Corruption in ElasticsearchImpetus Technologies
 
Real-world Applications of Streaming Analytics- StreamAnalytix Webinar
Real-world Applications of Streaming Analytics- StreamAnalytix WebinarReal-world Applications of Streaming Analytics- StreamAnalytix Webinar
Real-world Applications of Streaming Analytics- StreamAnalytix WebinarImpetus Technologies
 
Real-world Applications of Streaming Analytics- StreamAnalytix Webinar
Real-world Applications of Streaming Analytics- StreamAnalytix WebinarReal-world Applications of Streaming Analytics- StreamAnalytix Webinar
Real-world Applications of Streaming Analytics- StreamAnalytix WebinarImpetus Technologies
 
Real-time Streaming Analytics for Enterprises based on Apache Storm - Impetus...
Real-time Streaming Analytics for Enterprises based on Apache Storm - Impetus...Real-time Streaming Analytics for Enterprises based on Apache Storm - Impetus...
Real-time Streaming Analytics for Enterprises based on Apache Storm - Impetus...Impetus Technologies
 
Accelerating Hadoop Solution Lifecycle and Improving ROI- Impetus On-demand W...
Accelerating Hadoop Solution Lifecycle and Improving ROI- Impetus On-demand W...Accelerating Hadoop Solution Lifecycle and Improving ROI- Impetus On-demand W...
Accelerating Hadoop Solution Lifecycle and Improving ROI- Impetus On-demand W...Impetus Technologies
 
Deep Learning: Evolution of ML from Statistical to Brain-like Computing- Data...
Deep Learning: Evolution of ML from Statistical to Brain-like Computing- Data...Deep Learning: Evolution of ML from Statistical to Brain-like Computing- Data...
Deep Learning: Evolution of ML from Statistical to Brain-like Computing- Data...Impetus Technologies
 
SPARK USE CASE- Distributed Reinforcement Learning for Electricity Market Bi...
SPARK USE CASE-  Distributed Reinforcement Learning for Electricity Market Bi...SPARK USE CASE-  Distributed Reinforcement Learning for Electricity Market Bi...
SPARK USE CASE- Distributed Reinforcement Learning for Electricity Market Bi...Impetus Technologies
 
Enterprise Ready Android and Manageability- Impetus Webcast
Enterprise Ready Android and Manageability- Impetus WebcastEnterprise Ready Android and Manageability- Impetus Webcast
Enterprise Ready Android and Manageability- Impetus WebcastImpetus Technologies
 
Real-time Streaming Analytics: Business Value, Use Cases and Architectural Co...
Real-time Streaming Analytics: Business Value, Use Cases and Architectural Co...Real-time Streaming Analytics: Business Value, Use Cases and Architectural Co...
Real-time Streaming Analytics: Business Value, Use Cases and Architectural Co...Impetus Technologies
 
Leveraging NoSQL Database Technology to Implement Real-time Data Architecture...
Leveraging NoSQL Database Technology to Implement Real-time Data Architecture...Leveraging NoSQL Database Technology to Implement Real-time Data Architecture...
Leveraging NoSQL Database Technology to Implement Real-time Data Architecture...Impetus Technologies
 
Maturity of Mobile Test Automation: Approaches and Future Trends- Impetus Web...
Maturity of Mobile Test Automation: Approaches and Future Trends- Impetus Web...Maturity of Mobile Test Automation: Approaches and Future Trends- Impetus Web...
Maturity of Mobile Test Automation: Approaches and Future Trends- Impetus Web...Impetus Technologies
 
Big Data Analytics with Storm, Spark and GraphLab
Big Data Analytics with Storm, Spark and GraphLabBig Data Analytics with Storm, Spark and GraphLab
Big Data Analytics with Storm, Spark and GraphLabImpetus Technologies
 
Webinar maturity of mobile test automation- approaches and future trends
Webinar  maturity of mobile test automation- approaches and future trendsWebinar  maturity of mobile test automation- approaches and future trends
Webinar maturity of mobile test automation- approaches and future trendsImpetus Technologies
 
Next generation analytics with yarn, spark and graph lab
Next generation analytics with yarn, spark and graph labNext generation analytics with yarn, spark and graph lab
Next generation analytics with yarn, spark and graph labImpetus Technologies
 
The Shared Elephant - Hadoop as a Shared Service for Multiple Departments – I...
The Shared Elephant - Hadoop as a Shared Service for Multiple Departments – I...The Shared Elephant - Hadoop as a Shared Service for Multiple Departments – I...
The Shared Elephant - Hadoop as a Shared Service for Multiple Departments – I...Impetus Technologies
 
Performance Testing of Big Data Applications - Impetus Webcast
Performance Testing of Big Data Applications - Impetus WebcastPerformance Testing of Big Data Applications - Impetus Webcast
Performance Testing of Big Data Applications - Impetus WebcastImpetus Technologies
 

More from Impetus Technologies (20)

Data Warehouse Modernization Webinar Series- Critical Trends, Implementation ...
Data Warehouse Modernization Webinar Series- Critical Trends, Implementation ...Data Warehouse Modernization Webinar Series- Critical Trends, Implementation ...
Data Warehouse Modernization Webinar Series- Critical Trends, Implementation ...
 
Future-Proof Your Streaming Analytics Architecture- StreamAnalytix Webinar
Future-Proof Your Streaming Analytics Architecture- StreamAnalytix WebinarFuture-Proof Your Streaming Analytics Architecture- StreamAnalytix Webinar
Future-Proof Your Streaming Analytics Architecture- StreamAnalytix Webinar
 
Building Real-time Streaming Apps in Minutes- Impetus Webinar
Building Real-time Streaming Apps in Minutes- Impetus WebinarBuilding Real-time Streaming Apps in Minutes- Impetus Webinar
Building Real-time Streaming Apps in Minutes- Impetus Webinar
 
Smart Enterprise Big Data Bus for the Modern Responsive Enterprise- StreamAna...
Smart Enterprise Big Data Bus for the Modern Responsive Enterprise- StreamAna...Smart Enterprise Big Data Bus for the Modern Responsive Enterprise- StreamAna...
Smart Enterprise Big Data Bus for the Modern Responsive Enterprise- StreamAna...
 
Impetus White Paper- Handling Data Corruption in Elasticsearch
Impetus White Paper- Handling  Data Corruption  in ElasticsearchImpetus White Paper- Handling  Data Corruption  in Elasticsearch
Impetus White Paper- Handling Data Corruption in Elasticsearch
 
Real-world Applications of Streaming Analytics- StreamAnalytix Webinar
Real-world Applications of Streaming Analytics- StreamAnalytix WebinarReal-world Applications of Streaming Analytics- StreamAnalytix Webinar
Real-world Applications of Streaming Analytics- StreamAnalytix Webinar
 
Real-world Applications of Streaming Analytics- StreamAnalytix Webinar
Real-world Applications of Streaming Analytics- StreamAnalytix WebinarReal-world Applications of Streaming Analytics- StreamAnalytix Webinar
Real-world Applications of Streaming Analytics- StreamAnalytix Webinar
 
Real-time Streaming Analytics for Enterprises based on Apache Storm - Impetus...
Real-time Streaming Analytics for Enterprises based on Apache Storm - Impetus...Real-time Streaming Analytics for Enterprises based on Apache Storm - Impetus...
Real-time Streaming Analytics for Enterprises based on Apache Storm - Impetus...
 
Accelerating Hadoop Solution Lifecycle and Improving ROI- Impetus On-demand W...
Accelerating Hadoop Solution Lifecycle and Improving ROI- Impetus On-demand W...Accelerating Hadoop Solution Lifecycle and Improving ROI- Impetus On-demand W...
Accelerating Hadoop Solution Lifecycle and Improving ROI- Impetus On-demand W...
 
Deep Learning: Evolution of ML from Statistical to Brain-like Computing- Data...
Deep Learning: Evolution of ML from Statistical to Brain-like Computing- Data...Deep Learning: Evolution of ML from Statistical to Brain-like Computing- Data...
Deep Learning: Evolution of ML from Statistical to Brain-like Computing- Data...
 
SPARK USE CASE- Distributed Reinforcement Learning for Electricity Market Bi...
SPARK USE CASE-  Distributed Reinforcement Learning for Electricity Market Bi...SPARK USE CASE-  Distributed Reinforcement Learning for Electricity Market Bi...
SPARK USE CASE- Distributed Reinforcement Learning for Electricity Market Bi...
 
Enterprise Ready Android and Manageability- Impetus Webcast
Enterprise Ready Android and Manageability- Impetus WebcastEnterprise Ready Android and Manageability- Impetus Webcast
Enterprise Ready Android and Manageability- Impetus Webcast
 
Real-time Streaming Analytics: Business Value, Use Cases and Architectural Co...
Real-time Streaming Analytics: Business Value, Use Cases and Architectural Co...Real-time Streaming Analytics: Business Value, Use Cases and Architectural Co...
Real-time Streaming Analytics: Business Value, Use Cases and Architectural Co...
 
Leveraging NoSQL Database Technology to Implement Real-time Data Architecture...
Leveraging NoSQL Database Technology to Implement Real-time Data Architecture...Leveraging NoSQL Database Technology to Implement Real-time Data Architecture...
Leveraging NoSQL Database Technology to Implement Real-time Data Architecture...
 
Maturity of Mobile Test Automation: Approaches and Future Trends- Impetus Web...
Maturity of Mobile Test Automation: Approaches and Future Trends- Impetus Web...Maturity of Mobile Test Automation: Approaches and Future Trends- Impetus Web...
Maturity of Mobile Test Automation: Approaches and Future Trends- Impetus Web...
 
Big Data Analytics with Storm, Spark and GraphLab
Big Data Analytics with Storm, Spark and GraphLabBig Data Analytics with Storm, Spark and GraphLab
Big Data Analytics with Storm, Spark and GraphLab
 
Webinar maturity of mobile test automation- approaches and future trends
Webinar  maturity of mobile test automation- approaches and future trendsWebinar  maturity of mobile test automation- approaches and future trends
Webinar maturity of mobile test automation- approaches and future trends
 
Next generation analytics with yarn, spark and graph lab
Next generation analytics with yarn, spark and graph labNext generation analytics with yarn, spark and graph lab
Next generation analytics with yarn, spark and graph lab
 
The Shared Elephant - Hadoop as a Shared Service for Multiple Departments – I...
The Shared Elephant - Hadoop as a Shared Service for Multiple Departments – I...The Shared Elephant - Hadoop as a Shared Service for Multiple Departments – I...
The Shared Elephant - Hadoop as a Shared Service for Multiple Departments – I...
 
Performance Testing of Big Data Applications - Impetus Webcast
Performance Testing of Big Data Applications - Impetus WebcastPerformance Testing of Big Data Applications - Impetus Webcast
Performance Testing of Big Data Applications - Impetus Webcast
 

Recently uploaded

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 

Recently uploaded (20)

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 

Identifying Software Performance Bottlenecks Using Diagnostic Tools- Impetus White Paper

  • 1. Identifying Software Performance Bottlenecks using Diagnostic tools W H I T E P A P E R Abstract In this white paper, Impetus Technologies focuses on software performance diagnostic tools and how they enable rapid bottleneck identification. It discusses server-side and client-side diagnostics, including pluggable diagnostic tools and custom solutions across various scenarios. The white paper also touches on the benefits of adopting diagnostics, such as enhanced collaboration and application visibility. Impetus Technologies, Inc. www.impetus.com
  • 2. Identifying Software Performance Bottlenecks using Diagnostic tools 2 Table of Contents Introduction...........................................................................................................3 The importance of Diagnostic tools.......................................................................3 How diagnostic tools work?...................................................................................5 Impetus’ approach to server-side diagnostics.......................................................7 Impetus’ solution for client side diagnostics .........................................................9 Benefits offered by Diagnostics tools ..................................................................10 Summary..............................................................................................................11
  • 3. Identifying Software Performance Bottlenecks using Diagnostic tools 3 Introduction Identifying bottlenecks and performance snags in applications is becoming critical for organizations today. Typically, this is undertaken using load test results. The performance engineering team detects problem areas by executing performance tests, and the test results, including problem areas, transaction response times, and system monitoring data are then shared with the development team. The development team identifies system bottlenecks using resource monitoring data and helps in the tuning of system components. These recommendations are then shared with the performance engineering team, that validates the same with performance tests. However, identifying code level bottlenecks is a challenging task for the development team. It may find it difficult to analyze and comprehend the test results, as they are based on user transactions. Also, development environments are vastly different from test environments in terms of memory and processing power. Organizations are therefore on the lookout for solutions that can help them reduce the iterations between the performance engineers and the development teams and speed up the process of identifying and isolating code bottlenecks. They are keen to find ways by which they can map user transaction results to the method and query level, so that the development team can be helped in its analysis. Diagnostics tools can help companies address these issues. The Importance of Diagnostic Tools Diagnostic tools map the user-centric business transactions to method calls, thereby providing a developer-centric view of the test results. These tools are beneficial for the following reasons: • They can drill down the transaction response time into underlying methods, queries and service calls to components; and provide response time break-down across different sub-components. • They follow the path of the user transaction and gather performance data throughout its lifetime. • They enable the development team to analyze these statistics along with the method trace, and isolate the bottlenecks. This provides an intuitive, easy-to-use view, of how individual tiers, components, memory, and SQL statements impact the overall performance of a business process under load conditions; and facilitates deeper analysis.
  • 4. Identifying Software Performance Bottlenecks using Diagnostic tools 4 • They can be integrated with the available load testing solutions and effectively used in test environments. • They can be used in production to set up a continuous performance monitoring mechanism, due to their low overheads. However it is important to differentiate between the terms ‘diagnostic tools,’ and ‘profilers,’ which are often used by teams interchangeably. The fact is that these are two different sets of tools with different purposes. Profilers are more suited for fine-grained analysis and usually have more overheads than diagnostic tools. This makes them inappropriate for multi-user tests. Diagnostic tools on the other hand, can be used for multi-user load tests, as well as, production monitoring. Their main purpose is to isolate the code bottlenecks and provide relevant information. The development team can use Profilers to explore these isolated problem areas and figure out their root cause. Essentially, Profilers and Diagnostic tools complement each other.
  • 5. Identifying Software Performance Bottlenecks using Diagnostic tools 5 How Diagnostic Tools Work? Diagnostic tools can be used in multiple environments including development, test, staging and production. However, they are most widely used in a load- testing environment. Figure 1 How Diagnostic Tools Work Diagnostics can be applied to the app server, as well as the client-side, including the browser and mobile device. Diagnostic tools have two major components— the Diagnostic agent and Diagnostic server. The Diagnostic agent runs on the target component and hooks up with it, using byte code instrumentation. It gathers performance statistics and starts transmitting the data to the server. The agent runs in the same runtime as that of the target component.
  • 6. Identifying Software Performance Bottlenecks using Diagnostic tools 6 The Diagnostic server is responsible for collecting the raw data, aggregating it and storing it in the result repository. The user can then generate multiple graphs and reports; and monitor the application performance in real time as well as perform an offline analysis. Server side diagnostics There are different scenarios where diagnostic tools can be used. Key among them is server side diagnostics. In this particular scenario, Diagnostic tools are used to identify critical issues in the server components. These may include the application server, database server, Web server, messaging server, among others. The performance engineering team can choose between plug-in tools or custom tools. Plug-in Diagnostic tools Plug-in Diagnostic tools are integrated with the load testing tool. There are also situations where companies have to create a custom diagnostic harness to support some specific technology or requirement. These tools do not integrate with any load testing tool and work in isolation. Plug-in tools are used as an extension to existing load testing tools. Their major advantage is that they can integrate diagnostic data with test results. The business processes, in this case, can be mapped to method and query calls. Depending on the path of the user transaction in the application, the distribution of response time is provided. This makes analysis easier for the development team. The team can not only identify the method execution times but also verify any redundant method calls. The diagnostics configuration is handled by the load testing tool. The methods that need to be monitored are included as a part of the test scripts that are executed. Custom Diagnostic tools Standalone Diagnostic tools work independently, monitoring the performance statistics of the target application, as well as mapping the method and query details to the request URLs as received by the server component. These tools are installed and configured separately in the target environment. They are well suited to work with existing load testing tools and test scripts. Depending on the technology requirements, a custom tool might be created that can work during the load tests and provide performance monitoring. There are a few Open Source utilities that are also available for the same. Glassbox, and Infrared are some of popular tools in this category.
  • 7. Identifying Software Performance Bottlenecks using Diagnostic tools 7 Impetus’ Approach to Server-Side Diagnostics Impetus Technologies has evolved an approach to server-side diagnostics that it has used effectively in multiple customer engagements. The first and the most important step are selecting the appropriate Diagnostic tool. The choice is of course between a plug-in tool or creating a custom solution, which in turn depends on several factors, including the following: • The technology being used. If no existing tool is available for the technology stack being used in the application, it becomes imperative to create a custom solution using available Aspect oriented frameworks. • The objective of using Diagnostic tools. If the objective is to use these during load testing activities, organizations can choose either plug-in or custom tools. However, if the objective is to continuously monitor performance, there is need for standalone tools. • The budget. If the budget is a constraint, organizations can opt for Open Source or freely available tools. Else, they can go for specialized tools that provide rich analysis capabilities and are more user-friendly. After selecting the tool and configuring it in the target environment, Impetus recommends that performance teams measure the overhead in terms of CPU utilization and impact on response times. It is possible to control this overhead by setting up the appropriate filters so that only the specific methods can be monitored. This is very important in case of the production monitoring mechanism because companies may not want to have a high impact of the Diagnostic tool on the environment. After the tool is properly configured and calibrated, it is possible to run load tests with the diagnostics on. The test results along with the diagnostic results can then be analyzed to get insights on the performance of the complete application. This includes information such as top 10 methods by execution time, method hot spots, costliest queries, etc. Client side diagnostics Diagnostic tools can also be used to identify client side performance snags, covering desktop clients, such as browsers; and the apps running on mobile devices. This is extremely important as client side performance greatly impacts the end user experience.
  • 8. Identifying Software Performance Bottlenecks using Diagnostic tools 8 Mobile Diagnostics Mobile diagnostics refers to the measurement of the performance of a mobile application on a device. This is a challenging task for performance engineers. Due to the lack of resources on the device, the performance of an application can degrade drastically. Also, the application may behave differently on different devices, as well as technologies. By using diagnostic tools, performance engineering teams can arrive at method execution times on the mobile device and log the same. This may help in analyzing the expensive methods. There aren’t many diagnostic tools available in the mobile space. Profilers, including J2ME profilers, Android Trace, etc. have to be used, which are specific to different technologies and are mostly deployed by the development teams. However, in order to address specific requirements, it is preferable that teams create custom diagnostic solutions. Browser Diagnostics Internet technologies running applications also face issues. Today, rich Internet applications are available that have been built using AJAX, HTML5, FLEX, SilverLight, jQuery and similar technologies. These also present performance challenges to Web developers. It is really difficult to identify bottlenecks on the browser that can impact the end-user experience. Diagnostic tools can help in this process. Most of the client-side diagnostic tools are plug-ins to popular browsers. These can be integrated with the browser and provide all the statistics related to page rendering, Java script executions, memory, CPU utilization, etc. Some of the popular diagnostic plug-ins includes Firebug for Mozilla, Speedtrace for Chrome, HttpWatch for IE. There are other set of tools, including Dynatrace Ajax Edition, that work independently and extract the above information from the browser. These have more features and provide dashboards and fine grained analysis for identifying any existing issues.
  • 9. Identifying Software Performance Bottlenecks using Diagnostic tools 9 Impetus’ Solution for Client Side Diagnostics Not too many tools are available for mobile diagnostics, as multiple technologies and platforms exist, and no single tool can serve the purpose. It is better to create custom diagnostic solutions that address specific requirements of mobile applications. In few engagements, Impetus has used Aspect-oriented frameworks to build a diagnostic utility for mobile applications on the devices. The AOP frameworks like AspectMe for J2ME and AspectLUA for LUA can be used for this purpose. These frameworks use byte code instrumentation to inject hooks into the target application and measure runtime statistics, such as method timing and memory utilization. A set of re-usable aspects can be created that can be hooked into the important method calls or UI rendering calls to track their performance statistics. The aspects can be inserted using application binaries and hence there is no need to undertake any code changes. The methods to be monitored are specified at the time of instrumentation. In order to perform diagnostics for browsers to identify performance bottlenecks, we recommend installing proper plug-ins and configuring these to collect performance statistics during browsing session. The plug-in gathers all the relevant details and makes them available to the performance testing team. The team can then analyze the results to identify bottlenecks related to page loading, Java script execution, memory leaks, CPU utilization, etc. In one of our engagement by just tuning client side components, application performance, especially the end user experience, was improved by almost 40%.
  • 10. Identifying Software Performance Bottlenecks using Diagnostic tools 10 Benefits Offered by Diagnostics Tools Diagnostic tools offer a range of benefits to performance testing and development teams within organizations, including the following: • Identification and isolation of performance bottlenecks, which may be components, methods, or SQL statements. This in turn, assists in resolving memory, exception, or other problems swiftly, thereby, reducing the efforts of the development team. • Complete application visibility across the lifecycle, ensuring higher quality when applications go live. They also help reduce the Mean Time to Resolution in the application deployment environment. • Documentation of the root cause of any performance or stability issues, including the offending line of code, even in complex, highly distributed applications. The performance testers do not need any programming knowledge or access to source code to deliver an offline diagnosis report that allows development to efficiently resolve issues. • Effective collaboration between performance engineers and the development team, due to the availability of detailed test results. This reduces the multiple iterations between both the teams and speeds up the problem resolution time. • Improvement in the productivity of the Development team, including developers, architects and database engineers. The time-intensive, tedious, error prone and often impossible process of manually correlating log files, from different back-end systems with the client- side load testing results, becomes obsolete. This significantly accelerates the problem resolution time. • Inbuilt intelligence and suggestions for teams based on best practices. Also, some of the tools can be directly integrated with the developer’s environment and pinpoint the bottleneck at the code level itself.
  • 11. Identifying Software Performance Bottlenecks using Diagnostic tools 11 Summary In summary, it can be said that Diagnostic tools can do a lot to improve application performance, by identifying the bottlenecks. Also, companies must learn to differentiate between Diagnostic tools and Profilers that are not interchangeable, but rather complementary to each other. Profilers have high overheads and are better suited for fine-grained analysis. Organizations can use Diagnostic tools in multiple environments including development, test, staging and production. It is very essential for companies to embrace Diagnostics in their performance engineering strategies to enhance visibility across applications and improve collaboration among various stakeholders. It is possible to build custom diagnostics solutions to address specific requirements. These can be installed and configured separately in the target environment and are well suited to work with existing load testing tools and test scripts. It is also advisable to minimize the overheads by applying filters on the methods, or URLs that have to be monitored. It is a good practice to calibrate the overheads of the Diagnostic tools in the test environment by running a few sanity tests About Impetus Impetus is a Software Solutions and Services Company with deep technical maturity that brings you thought leadership, proactive innovation, and a track record of success. Our Services and Solutions portfolio includes Carrier grade large systems, Big Data, Cloud, Enterprise Mobility, and Test and Performance Engineering. Website: www.impetus.com | Email: inquiry@impetus.com © 2013 Impetus Technologies, Inc. All rights reserved. Product and company names mentioned herein may be trademarks of their respective companies. May 2013