SlideShare a Scribd company logo
Web/App Performance 
How to keep you out of the News 
Tech Blogs on http://blog.dynatrace.com 
Free Tools on http://ajax.dynatrace.com 
Hosted by: Andreas Grabner - @grabnerandi 
1 @Dynatrace
That’s why I ended up talking about performance 
2 @Dynatrace
3 @Dynatrace
4 @Dynatrace
0.01% Web Server 99.9% Backend 
5 @Dynatrace
http://ajax.dynatrace.com 
New Tools for App Performance Optimization! 
Browser Diagnostics++ 
User Experience Management 
Application Monitoring 
Continuous Delivery 
For Test, Dev, Ops & Business 
4.5 
6 @Dynatrace
But now back 
to WHY we 
are here 
TODAY… 
7 @Dynatrace
Nobody wants this … 
8 @Dynatrace
Unless you work for 
Google or Microsoft  
9 @Dynatrace
Nor this … 
10 @Dynatrace
11 @Dynatrace
As it leads to this … 
12 @Dynatrace
The “War Room” 
Facebook – December 2012 
13 @Dynatrace
And potentially to this … 
14 @Dynatrace
15 @Dynatrace
And this … 
16 @Dynatrace
17 @Dynatrace
And that’s why Business 
doesn’t like it either … 
18 @Dynatrace
YES we know this 
80%Dev Time in Bug Fixing 
$60B Defect Costs 
BUT 
~80% of problems 
caused by ~20% patterns 
19 @Dynatrace
5 Situations on 
WHY this happened, 
HOW to avoid it 
20 @Dynatrace
21 @Dynatrace
#Push 
without a Plan 
22 @Dynatrace
Mobile Landing Page of Super Bowl Ad 
434 Resources in total on that page: 
230 JPEGs, 75 PNGs, 50 GIFs, … 
Total size of ~ 
20MB 
23 @Dynatrace
m.store.com redirects to www.store.com 
ALL CSS and JS files are 
redirected to the www domain 
This is a lot of time “wasted” 
especially on high latency mobile 
connections 
24 @Dynatrace
Fifa.com during Worldcup 
http://apmblog.compuware.com/2014/05/21/is-the-fifa-world-cup-website-ready-for-the-tournament/ 
25 @Dynatrace
# Images 
# Redirects 
Size of Resources 
26 @Dynatrace
27 @Dynatrace
#“Blindly” 
(Re)use Existing 
Components 
28 @Dynatrace
Requirement: We need a report 
29 @Dynatrace
Using Hibernate results in 4k+ SQL Statements to 
display 3 items! 
Hibernate 
Executes 4k+ 
Statements 
Individual 
Execution VERY 
FAST 
But Total SUM 
takes 6s 
30 @Dynatrace
# SQL Executions 
# of SAME SQLs 
31 @Dynatrace
32 @Dynatrace
Architectural 
Decisions gone 
Bad 
33 @Dynatrace
We wanted Web 2.0 and Mobile Ready! 
34 @Dynatrace
35 @Dynatrace
36 @Dynatrace
# Items per Page 
# AJAX per Page 
37 @Dynatrace
38 @Dynatrace
Don’t assume 
You know the 
environment 
39 @Dynatrace
Distance Calculation Issues 
480km biking 
in 1 hour! 
Solution: Unit Test in 
Live App reports Geo 
Calc Problems 
Finding: Only 
happens on certain 
Android versions 
40 @Dynatrace
3rd Party Issues 
Impact of bad 
3rd party calls 
41 @Dynatrace
# Functional 
Errors 
3rd Party calls 
42 @Dynatrace
43 @Dynatrace
Deployment 
gone bad 
44 @Dynatrace
Test Environment 
Production Environment 
8x slower 
3x more SQL 
45 @Dynatrace
Test Environment Production Environment 
Hibernate, 
Hibernate, 
Classloading, 
XML – The Key 
Classloading, XML 
– The Key Hotspots 
I/O for Web 
Requests Hotspots 
doesn’t 
even show up! 
That’s Normal: 
Having I/O for Web 
Request as main 
contributor 
46 @Dynatrace
Top Contributor 
Class.getInterfaces 
Called from Hibernates 
FieldInterceptionHelper 
These calls all originate 
form thousands of calls to 
find item by code 
47 @Dynatrace
Time Spent in API 
# Calls into API 
48 @Dynatrace
49 @Dynatrace
#No “Agile” 
Deployment 
50 @Dynatrace
Load Spike resulted in UnavailabilityAd on air 
51 @Dynatrace
Alternative: “GoDaddy goes DevOps” 
1h before 
SuperBowl KickOff 
1h after 
Game ended 
52 @Dynatrace
# of Domains 
Total Size 
53 @Dynatrace
Consider these Metrics 
• # Images 
• # Redirects 
• Size of Resources 
• # SQL Executions 
• # of SAME SQLs 
• # Items per Page 
• # AJAX per Page 
•Time Spent in API 
• # Calls into API 
• # Functional Errors 
• 3rd Party calls 
• # of Domains 
•Total Size 
54 @Dynatrace
(R)Evolutionize Web Performance Optimization 
Unit & Integration Tests 
Commit Stage 
• Compile 
• Execute Unit Test 
• Code Analysis 
• Build installers 
Automated 
Acceptance 
Testing 
Performance Tests 
Automated 
Capacity 
Testing 
Production 
Monitoring 
Manual testing 
• Key showcases 
• Exploratory testing Release 
Functional Tests 
55 @Dynatrace
56 @Dynatrace
Example from Web Diagnostics 282! Objects 
9.68MB Page Size on that page 
8.8s Page Load 
Time 
Most objects are images 
delivered from your main 
domain 
Very long Connect time 
(1.8s) to your CDN 
57 @Dynatrace
Example from Server-Side Diagnostics 
526s to render that 
report 
1 SQL running 
210s! 
Lots of time spent 
in logging to Log4J 
Lots of time spent 
in rendering 
58 @Dynatrace
Online Performance Clinics 
Every Other week @ 
bit.ly/onlineperfclinic 
59 @Dynatrace
“Share Your PurePath” 
bit.ly/sharepurepath 
Your Benefits 
• Free Performance Review 
• Extended Dynatrace License 
My Benefits 
• More blog material for next year  
• Gratification that I could help you 
60 @Dynatrace
Questions and/or Demo 
Get Tools: http://ajax.dynatrace.com 
Contact Me: agrabner@dynatrace.com 
Follow Me: @grabnerandi 
Read More: http://blog.dynatrace.com 
61 @Dynatrace
30 Days Dynatrace Free Trial 
• Get it here: http://ajax.dynatrace.com 
• YouTube Tutorials: http://bit.ly/dttutorials 
• Live Q&A Sessions: http://bit.ly/onlineperfclinic 
• Contact me: agrabner@dynatrace.com – Follow Me: @grabnerandi 
•Special Offer: 
• Lifetime license for Browser Diagnostics 
• 180 Days for End-To-End 
62 @Dynatrace
Andreas Grabner 
Dynatrace Developer Advocate 
@grabnerandi 
http://blog.dynatrace.com 
63 @Dynatrace

More Related Content

Web and App Performance: Top Problems to avoid to keep you out of the News

Editor's Notes

  1. The Web Performance Optimization (WPO) movement made a huge impact in optimizing the web apps we build. But in 2014 this is no longer enough. With Mobile Apps and Applications that rely on backend services, 3rd party services, distributed across the globe in physical or virtual data centers requires developers to not just focus on web performance in their browser but end-to-end performance of their application
  2. My professional background: worked in performance for past 15 years. Segue, Borland, dynaTrace, Compuware, Dynatrace
  3. With dynaTrace AJAX Edition we solved a problem in the early days of Web Performance Optimization as there were no good tools available on Internet Explorer or Firefox. Endorsements by Steve Souders and John Resig helped to make it well known in the WPO community
  4. By now there are many great free tools out there: dynaTrace AJAX Edition, speedtracer, yslow, pagespeed, … - all do a great job in analyzing frontend performance – and based on Steve Souders that’s where 80% of your performance is Which is true for most landing pages of websites and those that have been built leveraging the browser as an application platform. BUT – it is not true for many critical pages or backend heavy applications such as eCommerce checkouts, …
  5. Some critical steps in an application are just very heavy on the server side – such as generating reports, getting your user history, order status, notifications, … In this example we talk about an online room reservation system where generating the overview of available meeting rooms takes between 60 and 120s. The problem however lies in the backend implementation due to some bad implementations causing thousands of SQL queries to be executed and too much data loaded into memory causing high GC. Rendering that page in the browser only takes a fraction of the total time
  6. That’s why we are happy to announce the availability of the next (r)evolutionary step when it comes to web performance optimization. We have a new version of AJAX Edition available but also now provide the same level of diagnostics not only in the browser but also end-to-end with our Dynatrace 6.1 Application Monitoring and User Experience Management. You can get both tools from http://ajax.dynatrace.com