SlideShare ist ein Scribd-Unternehmen logo
1 von 17
Downloaden Sie, um offline zu lesen
IAll rights reserved. 2015 © ZeroTurnaround Inc.
DISCOVERING APPDYNAMICS, NEWRELIC, JAVA MISSION CONTROL,
YOURKIT, JPROFILER, XREBEL, JMETER
THE DEVELOPER’S GUIDE
TO UNDERSTANDING
PERFORMANCE PROBLEMS.
And many other marvelous tools
PREVIEW
IIAll rights reserved. 2015 © ZeroTurnaround Inc.
AN INTRODUCTION to Performance
Demystifying performance. It's all just data.
Java Monitoring Tools
Java Profilers				
Performance Testing Tools
Looks great on paper, but does it work?
Performance Issues in Action
Moving Theory to Practice
The Paradox of Choice
Summary
GOODBYE COMIC and words
TABLE OF CONTENTS
The Lightweight
Java Profiler
THIS REPORT IS SPONSORED BY:
2
6
7
20
29
34
35
36
56
57
60
1
All rights reserved. 2014 © ZeroTurnaround Inc.
PERFORMANCE IS 99% ABOUT
UNDERSTANDING THE PROBLEMS
When trying to pin down the top factors impacting application
performance, the right answer is that there is no right answer...
the source of a performance problem could be almost anywhere!
JULIE CRAIG
Research Director, Application Management,
Enterprise Management Associates (EMA)
That is why you need to perfectly understand your application, its needs
and abilities, and feel comfortable using a range of performance related
tools:​APMs, profilers, testing libraries that will help you solve
the issues you have.
2All rights reserved. 2015 © ZeroTurnaround Inc.
Here’s a small translation of common terms that your manager might use and what they actually
mean in real performance terms:
In general, almost any question about performance can be postulated in terms of the above
mentioned resources and requirements.
REAL PERFORMANCE TERMS
What Managers say What Managers mean
Speed Latency
Scalability Throughput
Startup time CPU resource consumption
RAM footprint or garbage collection Memory resource consumption
User-perceived performance Responsiveness and latency
3All rights reserved. 2015 © ZeroTurnaround Inc. 33
All rights reserved. 2014 © ZeroTurnaround Inc.
DEMYSTIFYING PERFORMANCE.
IT’S ALL JUST DATA.
Gather data, stare at it intensely, then go and fix performance
problems. Sounds easy enough. Let’s dig into the variety of tools
that help you on this path.
When it comes to java performance tools that can help to optimize performance across
these areas, most fall into three major categories - Monitoring, Testing and Profiling. Java
Profiling and Monitoring both help measure and optimize performance during runtime.
Performance testing helps to show where your development efforts were not sympathetic
to real life, heavily loaded production environments. In this chapter we’ll look into the
tools that are available today, their strengths, the features they offer and also how they
find the culprits of any performance issues.
4All rights reserved. 2015 © ZeroTurnaround Inc.
URL: http://www.appdynamics.com/product/application-
performance-management/
Cost: [contact sales]
AppDynamics is a company with a complex portfolio of
application monitoring software: Application Performance
management, Mobile Real User monitoring, Database monitoring,
Application analytics, etc. AppDynamics takes pride in being able
to handle the most complex deployment topologies and weird
heterogeneous setups, supporting a range of programming
languages like .Net, Python, Ruby, and Java.
$$$
Monitor end-to-end business
transaction performance within
minutes, with no overhead.
5All rights reserved. 2015 © ZeroTurnaround Inc.
URL: http://newrelic.com/application-monitoring
Cost:
NewRelic is an application monitoring solution that is incredibly
easy to install into your environment and immediately gathers
valuable information about your system’s health. The monitoring
system consists of 2 parts, a javaagent that instruments your
application to collect data and the hosted service for analyzing
the data and presenting the reports.
$$$
Constantly monitoring your
applications so you don’t have to
6All rights reserved. 2015 © ZeroTurnaround Inc.
URL: https://plumbr.eu/
Cost:
Plumbr is a Java Performance Monitoring tool by the company of
the same name, which runs on your JVM process Plumbr monitors​
things such as memory leaks, garbage collection inefficiencies
and locked threads. The product has evolved since its first launch,
from a dedicated tool that specifically targets memory leaks in a
JVM to an overall monitoring tool which you would use 24/7.
$$$
Java Performance Monitoring:
The only solution with automatic
root cause detection
7All rights reserved. 2015 © ZeroTurnaround Inc.
illuminate
URL: http://www.jclarity.com/illuminate/
Cost:
Illuminate is a Java Performance tool that gathers analytics
based on machine learning. Illuminate focuses on the entire
environment, searching for bottlenecks that could be affecting
system performance. You are also able to enter your SLA data
into the tool, so that if you are ever in breach of any of your
agreements, Illuminate will be sure to tell you (Before someone
else does)!
$$$
Goodbye Java/JVM
Performance Problems
8All rights reserved. 2015 © ZeroTurnaround Inc.
JAVA MISSION CONTROL
URL: http://www.oracle.com/technetwork/java/javaseproducts/
mission-control/index.html
Cost: 	 (FREE for development)
Java Mission Control is a Java performance monitoring tool by
Oracle which has been shipped with the JDK since Java version 7
update 40. It consists of two parts, a​JMX Console and Java Flight
Recorder. JMX Console allows you go grab live information directly
from the runtime, providing you with the UI to query and change
certain aspects of the runtime. The Flight Recorder is more of a
history style tool. You can choose to run the flight recorder for an
amount of time, which will log data and metrics about the JVM.
After this, you can review the data from this period to drill down
and diagnose certain performance problems.
$$$
9All rights reserved. 2015 © ZeroTurnaround Inc.
URL: https://www.yourkit.com/features/
Cost:
The YourKit profiler, by the company of the same name, is one
of the most established leaders in the Java profilers category.
As a mature and versatile profiler, YourKit can do both CPU and
memory profiling for you, with integrations across major Java
application servers, JDBC and other frameworks for high-level
performance analysis like finding synchronisation issues and
excessive database access.
$$$
The Industry Leader
in .NET & Java Profiling
10All rights reserved. 2015 © ZeroTurnaround Inc.
JPROFILER
URL: https://www.ej-technologies.com/products/jprofiler/
overview.html
Cost:
JProfiler, by ej-technologies GmbH, is one of the tools​that
comprises their performance oriented tools portfolio. They also
have an APM solution, but in this section we want to focus on
their profiler. JProfiler is a comprehensive profiler for Java SE and
Java EE applications with plugins for all major IDEs which provides
enhanced analysis of the collected profile data. The main approach
of the JProfiler analysis is to collect and record profiling session
data: metrics and the information about the application behavior.
$$$
The Award-Winning
All-in-One Java Profiler
11All rights reserved. 2015 © ZeroTurnaround Inc.
URL: http://xrebel.com/
Cost:
XRebel by ZeroTurnaround is a lightweight Java profiler that is
intended for use in a development environment. It’s a javaagent
that instruments Java web-applications and automatically injects
a widget like reporting console, embedded in your application
view. The widget shows the application performance data. The
main benefit comes from the fact that the developer can fix
nastiest performance issues without even committing the poor
code into the build.
$$$
The Lightweight Java Profiler
12All rights reserved. 2015 © ZeroTurnaround Inc.
URL: http://gatling.io/
Cost: FREE!
Gatling is an open source load testing framework based on Scala,
Akka and Netty with extremely beautiful HTTP reports.
Gatling can record test scenarios and has a developer-friendly
DSL, so you can easily extend your recorded tests.
$$$
Arm yourself for Performance
13All rights reserved. 2015 © ZeroTurnaround Inc.
Performance Issues in Action
So, your application is slow. Maybe you experienced that firsthand or
maybe your project manager came to you saying: “Users are complaining
that it’s slow again”. Perhaps your operations team are pointing fingers at
you, giggling that you are unable to deliver a single performing artifact to
them. Irrespective of the information’s source, you are at the edge of the
problem and the fix. You have to now determine what’s going on and then
figure out how to fight the fire.
At the same time, you can be sure that just fixing this issue once and
forever is not an option available to you​. You’ll have the same problem
after the next release, then again and again. What you really need is a
change of perspective. How should you treat performance issues and the
performance of your application in general?
Well, there are several ways to fight application performance issues, and
they even share a crucial common trait. They all assume that you operate
on hard data and know what you’re doing. While this may be very accurate,
you must take this next piece of advice very seriously
Performance issues cannot be solved by shooting from the hip.
Measure, apply a fix, measure again!
14All rights reserved. 2015 © ZeroTurnaround Inc.
15All rights reserved. 2015 © ZeroTurnaround Inc.
Written by:
Oleg Shelajev (@shelajev), Simon Maple (@sjmaple)
Designed by: Ladislava Bohacova​ (@ladislava)
Contact us
Estonia
Ülikooli 2, 4th floor
Tartu, Estonia, 51003
Phone: +372 653 6099
Twitter: @RebelLabs
Web: http://zeroturnaround.com/rebellabs
Email: labs@zeroturnaround.com
USA
399 Boylston Street,
Suite 300, Boston,
MA, USA, 02116
Phone: 1 (857) 277-1199
Czech Republic
Jankovcova 1037/49
Building C, 5th floor,
170 00 Prague 7, Czech Republic
Phone: +420 227 020 130

Weitere ähnliche Inhalte

Andere mochten auch

Appraiser : How Airbnb Generates Complex Models in Spark for Demand Prediction
Appraiser : How Airbnb Generates Complex Models in Spark for Demand PredictionAppraiser : How Airbnb Generates Complex Models in Spark for Demand Prediction
Appraiser : How Airbnb Generates Complex Models in Spark for Demand PredictionYang Li Hector Yee
 
Writing Code That Lasts - Joomla!Dagen 2015
Writing Code That Lasts - Joomla!Dagen 2015Writing Code That Lasts - Joomla!Dagen 2015
Writing Code That Lasts - Joomla!Dagen 2015Rafael Dohms
 
3장 라즈베리 파이와 gpio
3장 라즈베리 파이와 gpio3장 라즈베리 파이와 gpio
3장 라즈베리 파이와 gpioYoung Jin Suh
 
I want to be an efficient developper. Mix-IT version
I want to be an efficient developper. Mix-IT versionI want to be an efficient developper. Mix-IT version
I want to be an efficient developper. Mix-IT versionQuentin Adam
 
How to build a Java Web App in the Cloud
How to build a Java Web App in the CloudHow to build a Java Web App in the Cloud
How to build a Java Web App in the CloudWSO2
 

Andere mochten auch (7)

Appraiser : How Airbnb Generates Complex Models in Spark for Demand Prediction
Appraiser : How Airbnb Generates Complex Models in Spark for Demand PredictionAppraiser : How Airbnb Generates Complex Models in Spark for Demand Prediction
Appraiser : How Airbnb Generates Complex Models in Spark for Demand Prediction
 
Writing Code That Lasts - Joomla!Dagen 2015
Writing Code That Lasts - Joomla!Dagen 2015Writing Code That Lasts - Joomla!Dagen 2015
Writing Code That Lasts - Joomla!Dagen 2015
 
3장 라즈베리 파이와 gpio
3장 라즈베리 파이와 gpio3장 라즈베리 파이와 gpio
3장 라즈베리 파이와 gpio
 
I want to be an efficient developper. Mix-IT version
I want to be an efficient developper. Mix-IT versionI want to be an efficient developper. Mix-IT version
I want to be an efficient developper. Mix-IT version
 
How to build a Java Web App in the Cloud
How to build a Java Web App in the CloudHow to build a Java Web App in the Cloud
How to build a Java Web App in the Cloud
 
Virtual Gets Real!
Virtual Gets Real! Virtual Gets Real!
Virtual Gets Real!
 
How Change Happens
How Change HappensHow Change Happens
How Change Happens
 

Mehr von ZeroTurnaround

XRebel - Real Time Insight, Faster Apps
XRebel - Real Time Insight, Faster AppsXRebel - Real Time Insight, Faster Apps
XRebel - Real Time Insight, Faster AppsZeroTurnaround
 
Java Tools and Technologies Landscape for 2014 (image gallery)
Java Tools and Technologies Landscape for 2014 (image gallery)Java Tools and Technologies Landscape for 2014 (image gallery)
Java Tools and Technologies Landscape for 2014 (image gallery)ZeroTurnaround
 
Getting Started with IntelliJ IDEA as an Eclipse User
Getting Started with IntelliJ IDEA as an Eclipse UserGetting Started with IntelliJ IDEA as an Eclipse User
Getting Started with IntelliJ IDEA as an Eclipse UserZeroTurnaround
 
DevOps vs Traditional IT Ops (DevOps Days ignite talk by Oliver White)
DevOps vs Traditional IT Ops (DevOps Days ignite talk by Oliver White)DevOps vs Traditional IT Ops (DevOps Days ignite talk by Oliver White)
DevOps vs Traditional IT Ops (DevOps Days ignite talk by Oliver White)ZeroTurnaround
 
Lazy Coder's Visual Guide to RebelLabs' Developer Productivity Report 2013
Lazy Coder's Visual Guide to RebelLabs' Developer Productivity Report 2013Lazy Coder's Visual Guide to RebelLabs' Developer Productivity Report 2013
Lazy Coder's Visual Guide to RebelLabs' Developer Productivity Report 2013ZeroTurnaround
 
The State of Managed Runtimes 2013, by Attila Szegedi
The State of Managed Runtimes 2013, by Attila SzegediThe State of Managed Runtimes 2013, by Attila Szegedi
The State of Managed Runtimes 2013, by Attila SzegediZeroTurnaround
 
Language Design Tradeoffs - Kotlin and Beyond, by Andrey Breslav
Language Design Tradeoffs - Kotlin and Beyond, by Andrey BreslavLanguage Design Tradeoffs - Kotlin and Beyond, by Andrey Breslav
Language Design Tradeoffs - Kotlin and Beyond, by Andrey BreslavZeroTurnaround
 
Runtime Innovation - Nextgen Ninja Hacking of the JVM, by Ryan Sciampacone
Runtime Innovation - Nextgen Ninja Hacking of the JVM, by Ryan SciampaconeRuntime Innovation - Nextgen Ninja Hacking of the JVM, by Ryan Sciampacone
Runtime Innovation - Nextgen Ninja Hacking of the JVM, by Ryan SciampaconeZeroTurnaround
 
Easy Scaling with Open Source Data Structures, by Talip Ozturk
Easy Scaling with Open Source Data Structures, by Talip OzturkEasy Scaling with Open Source Data Structures, by Talip Ozturk
Easy Scaling with Open Source Data Structures, by Talip OzturkZeroTurnaround
 
Blast your app with Gatling! by Stephane Landelle
Blast your app with Gatling! by Stephane LandelleBlast your app with Gatling! by Stephane Landelle
Blast your app with Gatling! by Stephane LandelleZeroTurnaround
 
JVM JIT compilation overview by Vladimir Ivanov
JVM JIT compilation overview by Vladimir IvanovJVM JIT compilation overview by Vladimir Ivanov
JVM JIT compilation overview by Vladimir IvanovZeroTurnaround
 
How To Do Kick-Ass Software Development, by Sven Peters
How To Do Kick-Ass Software Development, by Sven PetersHow To Do Kick-Ass Software Development, by Sven Peters
How To Do Kick-Ass Software Development, by Sven PetersZeroTurnaround
 
Level Up Your Git and GitHub Experience by Jordan McCullough and Brent Beer
Level Up Your Git and GitHub Experience by Jordan McCullough and Brent BeerLevel Up Your Git and GitHub Experience by Jordan McCullough and Brent Beer
Level Up Your Git and GitHub Experience by Jordan McCullough and Brent BeerZeroTurnaround
 
AST Transformations: Groovy’s best kept secret by Andres Almiray
AST Transformations: Groovy’s best kept secret by Andres AlmirayAST Transformations: Groovy’s best kept secret by Andres Almiray
AST Transformations: Groovy’s best kept secret by Andres AlmirayZeroTurnaround
 
Tap into the power of slaves with Jenkins by Kohsuke Kawaguchi
Tap into the power of slaves with Jenkins by Kohsuke KawaguchiTap into the power of slaves with Jenkins by Kohsuke Kawaguchi
Tap into the power of slaves with Jenkins by Kohsuke KawaguchiZeroTurnaround
 
Language Design Tradeoffs (Kotlin and Beyond) by Andrey Breslav
Language Design Tradeoffs (Kotlin and Beyond) by Andrey BreslavLanguage Design Tradeoffs (Kotlin and Beyond) by Andrey Breslav
Language Design Tradeoffs (Kotlin and Beyond) by Andrey BreslavZeroTurnaround
 
Spring 4 on Java 8 by Juergen Hoeller
Spring 4 on Java 8 by Juergen HoellerSpring 4 on Java 8 by Juergen Hoeller
Spring 4 on Java 8 by Juergen HoellerZeroTurnaround
 
On Inherent Complexity of Computation, by Attila Szegedi
On Inherent Complexity of Computation, by Attila SzegediOn Inherent Complexity of Computation, by Attila Szegedi
On Inherent Complexity of Computation, by Attila SzegediZeroTurnaround
 
Programmers Are Way Cooler Than Musicians, by Geert Bevin
Programmers Are Way Cooler Than Musicians, by Geert BevinProgrammers Are Way Cooler Than Musicians, by Geert Bevin
Programmers Are Way Cooler Than Musicians, by Geert BevinZeroTurnaround
 

Mehr von ZeroTurnaround (20)

XRebel - Real Time Insight, Faster Apps
XRebel - Real Time Insight, Faster AppsXRebel - Real Time Insight, Faster Apps
XRebel - Real Time Insight, Faster Apps
 
Redeploy chart
Redeploy chartRedeploy chart
Redeploy chart
 
Java Tools and Technologies Landscape for 2014 (image gallery)
Java Tools and Technologies Landscape for 2014 (image gallery)Java Tools and Technologies Landscape for 2014 (image gallery)
Java Tools and Technologies Landscape for 2014 (image gallery)
 
Getting Started with IntelliJ IDEA as an Eclipse User
Getting Started with IntelliJ IDEA as an Eclipse UserGetting Started with IntelliJ IDEA as an Eclipse User
Getting Started with IntelliJ IDEA as an Eclipse User
 
DevOps vs Traditional IT Ops (DevOps Days ignite talk by Oliver White)
DevOps vs Traditional IT Ops (DevOps Days ignite talk by Oliver White)DevOps vs Traditional IT Ops (DevOps Days ignite talk by Oliver White)
DevOps vs Traditional IT Ops (DevOps Days ignite talk by Oliver White)
 
Lazy Coder's Visual Guide to RebelLabs' Developer Productivity Report 2013
Lazy Coder's Visual Guide to RebelLabs' Developer Productivity Report 2013Lazy Coder's Visual Guide to RebelLabs' Developer Productivity Report 2013
Lazy Coder's Visual Guide to RebelLabs' Developer Productivity Report 2013
 
The State of Managed Runtimes 2013, by Attila Szegedi
The State of Managed Runtimes 2013, by Attila SzegediThe State of Managed Runtimes 2013, by Attila Szegedi
The State of Managed Runtimes 2013, by Attila Szegedi
 
Language Design Tradeoffs - Kotlin and Beyond, by Andrey Breslav
Language Design Tradeoffs - Kotlin and Beyond, by Andrey BreslavLanguage Design Tradeoffs - Kotlin and Beyond, by Andrey Breslav
Language Design Tradeoffs - Kotlin and Beyond, by Andrey Breslav
 
Runtime Innovation - Nextgen Ninja Hacking of the JVM, by Ryan Sciampacone
Runtime Innovation - Nextgen Ninja Hacking of the JVM, by Ryan SciampaconeRuntime Innovation - Nextgen Ninja Hacking of the JVM, by Ryan Sciampacone
Runtime Innovation - Nextgen Ninja Hacking of the JVM, by Ryan Sciampacone
 
Easy Scaling with Open Source Data Structures, by Talip Ozturk
Easy Scaling with Open Source Data Structures, by Talip OzturkEasy Scaling with Open Source Data Structures, by Talip Ozturk
Easy Scaling with Open Source Data Structures, by Talip Ozturk
 
Blast your app with Gatling! by Stephane Landelle
Blast your app with Gatling! by Stephane LandelleBlast your app with Gatling! by Stephane Landelle
Blast your app with Gatling! by Stephane Landelle
 
JVM JIT compilation overview by Vladimir Ivanov
JVM JIT compilation overview by Vladimir IvanovJVM JIT compilation overview by Vladimir Ivanov
JVM JIT compilation overview by Vladimir Ivanov
 
How To Do Kick-Ass Software Development, by Sven Peters
How To Do Kick-Ass Software Development, by Sven PetersHow To Do Kick-Ass Software Development, by Sven Peters
How To Do Kick-Ass Software Development, by Sven Peters
 
Level Up Your Git and GitHub Experience by Jordan McCullough and Brent Beer
Level Up Your Git and GitHub Experience by Jordan McCullough and Brent BeerLevel Up Your Git and GitHub Experience by Jordan McCullough and Brent Beer
Level Up Your Git and GitHub Experience by Jordan McCullough and Brent Beer
 
AST Transformations: Groovy’s best kept secret by Andres Almiray
AST Transformations: Groovy’s best kept secret by Andres AlmirayAST Transformations: Groovy’s best kept secret by Andres Almiray
AST Transformations: Groovy’s best kept secret by Andres Almiray
 
Tap into the power of slaves with Jenkins by Kohsuke Kawaguchi
Tap into the power of slaves with Jenkins by Kohsuke KawaguchiTap into the power of slaves with Jenkins by Kohsuke Kawaguchi
Tap into the power of slaves with Jenkins by Kohsuke Kawaguchi
 
Language Design Tradeoffs (Kotlin and Beyond) by Andrey Breslav
Language Design Tradeoffs (Kotlin and Beyond) by Andrey BreslavLanguage Design Tradeoffs (Kotlin and Beyond) by Andrey Breslav
Language Design Tradeoffs (Kotlin and Beyond) by Andrey Breslav
 
Spring 4 on Java 8 by Juergen Hoeller
Spring 4 on Java 8 by Juergen HoellerSpring 4 on Java 8 by Juergen Hoeller
Spring 4 on Java 8 by Juergen Hoeller
 
On Inherent Complexity of Computation, by Attila Szegedi
On Inherent Complexity of Computation, by Attila SzegediOn Inherent Complexity of Computation, by Attila Szegedi
On Inherent Complexity of Computation, by Attila Szegedi
 
Programmers Are Way Cooler Than Musicians, by Geert Bevin
Programmers Are Way Cooler Than Musicians, by Geert BevinProgrammers Are Way Cooler Than Musicians, by Geert Bevin
Programmers Are Way Cooler Than Musicians, by Geert Bevin
 

Kürzlich hochgeladen

Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Rob Geurden
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Mater
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf31events.com
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 

Kürzlich hochgeladen (20)

Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 

The Developers Guide to Understanding Performance Problems

  • 1. IAll rights reserved. 2015 © ZeroTurnaround Inc. DISCOVERING APPDYNAMICS, NEWRELIC, JAVA MISSION CONTROL, YOURKIT, JPROFILER, XREBEL, JMETER THE DEVELOPER’S GUIDE TO UNDERSTANDING PERFORMANCE PROBLEMS. And many other marvelous tools PREVIEW
  • 2. IIAll rights reserved. 2015 © ZeroTurnaround Inc. AN INTRODUCTION to Performance Demystifying performance. It's all just data. Java Monitoring Tools Java Profilers Performance Testing Tools Looks great on paper, but does it work? Performance Issues in Action Moving Theory to Practice The Paradox of Choice Summary GOODBYE COMIC and words TABLE OF CONTENTS The Lightweight Java Profiler THIS REPORT IS SPONSORED BY: 2 6 7 20 29 34 35 36 56 57 60
  • 3. 1 All rights reserved. 2014 © ZeroTurnaround Inc. PERFORMANCE IS 99% ABOUT UNDERSTANDING THE PROBLEMS When trying to pin down the top factors impacting application performance, the right answer is that there is no right answer... the source of a performance problem could be almost anywhere! JULIE CRAIG Research Director, Application Management, Enterprise Management Associates (EMA) That is why you need to perfectly understand your application, its needs and abilities, and feel comfortable using a range of performance related tools:​APMs, profilers, testing libraries that will help you solve the issues you have.
  • 4. 2All rights reserved. 2015 © ZeroTurnaround Inc. Here’s a small translation of common terms that your manager might use and what they actually mean in real performance terms: In general, almost any question about performance can be postulated in terms of the above mentioned resources and requirements. REAL PERFORMANCE TERMS What Managers say What Managers mean Speed Latency Scalability Throughput Startup time CPU resource consumption RAM footprint or garbage collection Memory resource consumption User-perceived performance Responsiveness and latency
  • 5. 3All rights reserved. 2015 © ZeroTurnaround Inc. 33 All rights reserved. 2014 © ZeroTurnaround Inc. DEMYSTIFYING PERFORMANCE. IT’S ALL JUST DATA. Gather data, stare at it intensely, then go and fix performance problems. Sounds easy enough. Let’s dig into the variety of tools that help you on this path. When it comes to java performance tools that can help to optimize performance across these areas, most fall into three major categories - Monitoring, Testing and Profiling. Java Profiling and Monitoring both help measure and optimize performance during runtime. Performance testing helps to show where your development efforts were not sympathetic to real life, heavily loaded production environments. In this chapter we’ll look into the tools that are available today, their strengths, the features they offer and also how they find the culprits of any performance issues.
  • 6. 4All rights reserved. 2015 © ZeroTurnaround Inc. URL: http://www.appdynamics.com/product/application- performance-management/ Cost: [contact sales] AppDynamics is a company with a complex portfolio of application monitoring software: Application Performance management, Mobile Real User monitoring, Database monitoring, Application analytics, etc. AppDynamics takes pride in being able to handle the most complex deployment topologies and weird heterogeneous setups, supporting a range of programming languages like .Net, Python, Ruby, and Java. $$$ Monitor end-to-end business transaction performance within minutes, with no overhead.
  • 7. 5All rights reserved. 2015 © ZeroTurnaround Inc. URL: http://newrelic.com/application-monitoring Cost: NewRelic is an application monitoring solution that is incredibly easy to install into your environment and immediately gathers valuable information about your system’s health. The monitoring system consists of 2 parts, a javaagent that instruments your application to collect data and the hosted service for analyzing the data and presenting the reports. $$$ Constantly monitoring your applications so you don’t have to
  • 8. 6All rights reserved. 2015 © ZeroTurnaround Inc. URL: https://plumbr.eu/ Cost: Plumbr is a Java Performance Monitoring tool by the company of the same name, which runs on your JVM process Plumbr monitors​ things such as memory leaks, garbage collection inefficiencies and locked threads. The product has evolved since its first launch, from a dedicated tool that specifically targets memory leaks in a JVM to an overall monitoring tool which you would use 24/7. $$$ Java Performance Monitoring: The only solution with automatic root cause detection
  • 9. 7All rights reserved. 2015 © ZeroTurnaround Inc. illuminate URL: http://www.jclarity.com/illuminate/ Cost: Illuminate is a Java Performance tool that gathers analytics based on machine learning. Illuminate focuses on the entire environment, searching for bottlenecks that could be affecting system performance. You are also able to enter your SLA data into the tool, so that if you are ever in breach of any of your agreements, Illuminate will be sure to tell you (Before someone else does)! $$$ Goodbye Java/JVM Performance Problems
  • 10. 8All rights reserved. 2015 © ZeroTurnaround Inc. JAVA MISSION CONTROL URL: http://www.oracle.com/technetwork/java/javaseproducts/ mission-control/index.html Cost: (FREE for development) Java Mission Control is a Java performance monitoring tool by Oracle which has been shipped with the JDK since Java version 7 update 40. It consists of two parts, a​JMX Console and Java Flight Recorder. JMX Console allows you go grab live information directly from the runtime, providing you with the UI to query and change certain aspects of the runtime. The Flight Recorder is more of a history style tool. You can choose to run the flight recorder for an amount of time, which will log data and metrics about the JVM. After this, you can review the data from this period to drill down and diagnose certain performance problems. $$$
  • 11. 9All rights reserved. 2015 © ZeroTurnaround Inc. URL: https://www.yourkit.com/features/ Cost: The YourKit profiler, by the company of the same name, is one of the most established leaders in the Java profilers category. As a mature and versatile profiler, YourKit can do both CPU and memory profiling for you, with integrations across major Java application servers, JDBC and other frameworks for high-level performance analysis like finding synchronisation issues and excessive database access. $$$ The Industry Leader in .NET & Java Profiling
  • 12. 10All rights reserved. 2015 © ZeroTurnaround Inc. JPROFILER URL: https://www.ej-technologies.com/products/jprofiler/ overview.html Cost: JProfiler, by ej-technologies GmbH, is one of the tools​that comprises their performance oriented tools portfolio. They also have an APM solution, but in this section we want to focus on their profiler. JProfiler is a comprehensive profiler for Java SE and Java EE applications with plugins for all major IDEs which provides enhanced analysis of the collected profile data. The main approach of the JProfiler analysis is to collect and record profiling session data: metrics and the information about the application behavior. $$$ The Award-Winning All-in-One Java Profiler
  • 13. 11All rights reserved. 2015 © ZeroTurnaround Inc. URL: http://xrebel.com/ Cost: XRebel by ZeroTurnaround is a lightweight Java profiler that is intended for use in a development environment. It’s a javaagent that instruments Java web-applications and automatically injects a widget like reporting console, embedded in your application view. The widget shows the application performance data. The main benefit comes from the fact that the developer can fix nastiest performance issues without even committing the poor code into the build. $$$ The Lightweight Java Profiler
  • 14. 12All rights reserved. 2015 © ZeroTurnaround Inc. URL: http://gatling.io/ Cost: FREE! Gatling is an open source load testing framework based on Scala, Akka and Netty with extremely beautiful HTTP reports. Gatling can record test scenarios and has a developer-friendly DSL, so you can easily extend your recorded tests. $$$ Arm yourself for Performance
  • 15. 13All rights reserved. 2015 © ZeroTurnaround Inc. Performance Issues in Action So, your application is slow. Maybe you experienced that firsthand or maybe your project manager came to you saying: “Users are complaining that it’s slow again”. Perhaps your operations team are pointing fingers at you, giggling that you are unable to deliver a single performing artifact to them. Irrespective of the information’s source, you are at the edge of the problem and the fix. You have to now determine what’s going on and then figure out how to fight the fire. At the same time, you can be sure that just fixing this issue once and forever is not an option available to you​. You’ll have the same problem after the next release, then again and again. What you really need is a change of perspective. How should you treat performance issues and the performance of your application in general? Well, there are several ways to fight application performance issues, and they even share a crucial common trait. They all assume that you operate on hard data and know what you’re doing. While this may be very accurate, you must take this next piece of advice very seriously Performance issues cannot be solved by shooting from the hip. Measure, apply a fix, measure again!
  • 16. 14All rights reserved. 2015 © ZeroTurnaround Inc.
  • 17. 15All rights reserved. 2015 © ZeroTurnaround Inc. Written by: Oleg Shelajev (@shelajev), Simon Maple (@sjmaple) Designed by: Ladislava Bohacova​ (@ladislava) Contact us Estonia Ülikooli 2, 4th floor Tartu, Estonia, 51003 Phone: +372 653 6099 Twitter: @RebelLabs Web: http://zeroturnaround.com/rebellabs Email: labs@zeroturnaround.com USA 399 Boylston Street, Suite 300, Boston, MA, USA, 02116 Phone: 1 (857) 277-1199 Czech Republic Jankovcova 1037/49 Building C, 5th floor, 170 00 Prague 7, Czech Republic Phone: +420 227 020 130