SlideShare a Scribd company logo
Performance Clinic Workshop 
From Zero to Performance Hero 
Andreas Grabner (@grabnerandi) 
agrabner@dynatrace.com 
http://bit.ly/atd2014challenge
Why Applications Fail and/or are Slow!
Performance areas we cover today 
• Frontend 
• Backend 
• Deployment
Frontend
From Zero to Performance Hero in Minutes - Agile Testing Days 2014 Potsdam
http://www.stevesouders.com/blog/2012/02/10/the-performance-golden-rule/
#Overloaded Web Pages 
• #1: Too many resources loaded on web page 
– Images: can be “sprited” 
– CSS and JS: can be merged 
• #2: Large Content 
– Images: do you need high-res? Compress! 
– CSS and JS: Minify, remove comments, … 
• #3: 3rd Party Content 
– Slow or too much 
• #4: AJAX to the MAX! 
– Too many AJAX Calls requesting too much data
Examples on Overloaded
This is a heavy page
This is a light page 
http://apmblog.compuware.com/2011/11/29/5-things-to-learn-from-jc-penney-and-other-strong-black-friday-and-cyber-monday-performers/
softdrink.com during SuperBowl 
434 Resources in total on that page: 
230 JPEGs, 75 PNGs, 50 GIFs, … 
Total size of ~ 
20MB 
http://apmblog.compuware.com/2014/01/31/technical-and-business-web-performance-tips-for-super-bowl-ad-landing-pages/
Fifa.com during Worldcup 
http://apmblog.compuware.com/2014/05/21/is-the-fifa-world-cup-website-ready-for-the-tournament/
Ad on air 
Kia.com during SuperBowl
GoDaddy.com during SuperBowl 
1h before 
SuperBowl KickOff 
1h after 
Game ended
Kia vs GoDaddy: The Facts! 
http://apmblog.compuware.com/2014/02/19/dns-tcp-and-size-application-performance-best-practices-of-super-bowl-advertisers/
3rd Party Content
Do you really need all bells and whistles? 
# of Domains # of Resources Total Bytes DNS [ms] Connect [ms] 
With Third 
Party Content 
26 176 2856 Kb 1286,82 1176,09 
Without Third 
Party Content 
2 59 897 Kb 0,91 22,25
Too heavy AJAX/JavaScript 
1.1s on my IE 10 to 
execute magicSpanLinks() 
The each loop calls this block of 
JavaScript for every span node 
759 span nodes are processed 
by the anonymous function 
It adds the dynamically 
generated link and removes the 
old span 
We can see all the DOM 
Modifications and how this 
sums up in execution time
3rd Party JavaScript Problems 
Slow 3rd Party 
Libraries 
Slow jQuery 
Lookukps
15 Minute Sanity Check – Live Demo 
• Dynatrace Performance Test Center 
– http://www.dynatrace.com/en_us/application-performance-management/ 
products/performance-center.html 
• Dynatrace Browser Agent (formerly AJAX Edition) 
– http://apmblog.compuware.com/2014/07/01/can-monitor-web-performance- 
free/ 
• Fiddler – simulate other browsers 
– http://www.telerik.com/fiddler 
• PerfMap – HeatMap for a Website 
– https://github.com/zeman/perfmap
Summary – WPO Best Practices 
• Additional Blog Posts 
– http://apmblog.compuware.com/2013/12/02/the-terrible-website-performance-mistakes-of-mobile-shopping-sites-in-2013/ 
– http://apmblog.compuware.com/2011/11/29/5-things-to-learn-from-jc-penney-and-other-strong-black-friday-and-cyber-monday- 
performers/ 
– http://apmblog.compuware.com/2010/08/25/top-10-client-side-performance-problems-in-web-2-0/ 
• Recommended Books from Steve Souders covering things like 
– Make fewer HTTP Requests 
– Proper Cache Settings 
– Optimize/Compress Content 
– Use CDNs 
– Watch out for 3rd Parties
Tooling Support 
• http://bit.ly/dttrial 
• http://ajax.dynatrace.com 
• http://yslow.org 
• https://developers.google.com/speed/pagespeed 
• http://www.webpagetest.org/ 
• http://www.sitespeed.io/ 
• http://www.showslow.org 
• http://www.telerik.com/fiddler 
• https://github.com/zeman/perfmap 
• https://chrome.google.com/webstore/detail/user-agent-switcher-for-c/ 
djflhoibgkdhkhhcedjiklpkjnoahfmg
Hands-On
Backend 
Performance 
http://bit.ly/atd2014challenge 
@grabnerandi
From Zero to Performance Hero in Minutes - Agile Testing Days 2014 Potsdam
From Zero to Performance Hero in Minutes - Agile Testing Days 2014 Potsdam
Bad Architectural Decisions 
#1: Database Access 
N+1 Query Problem 
Loading Too Much Data 
Connection Leaks 
#2: External Frameworks 
Bad Configuration of O/R Mappers, e.g: Hibernate 
Worked well in Sample App Attitude 
#3: Excessive Logging & Exceptions 
Debug Logging turned on 
Using outdated logging libraries 
Exception Overload 
#4: Memory Leaks 
Keeping objects for too long 
Bad Cache Implementations 
#5: Bad Coding 
Synchronization to Death 
High on CPU
Examples
Database Access
Database: N+1 Query Problem
Querying too much Data All of these requests with large size 
have the same problem in common: 
DB Access 
24889 Calls to the 
Database! 
Tomcat needs to process all this data! 
SideEffect: High Memory Usage to process 
data -> results in high GC 
High GC is not the problem. It is 
just the symptom of too much data 
loaded!
Too many connections 12444 individual 
connections to 
execute 12444 
individual SQL 
Statements 
Individual executions 
are fast. But VOLUME is 
Classical N+1 Query Problem. The 
same SQL is executed many times 
with different WHERE Clause 
Optimize this by only calling it once 
with a better WHERE Clause 
killing you
Filtering Data in Memory instead of DB 
Most lookups are done 
by getRoomCapacity 
Assumption: All the data loaded ends 
up in Hashtable. The lookups are then 
very expensive because these Tables 
are so huge
External Frameworks
Non Optimized Hibernate 
http://apmblog.compuware.com/2014/04/23/database-access-quality-metrics-for-your-continuous-delivery-pipeline/
Non Optimized Telerik Controls 
http://apmblog.compuware.com/2014/04/03/database-access-patterns-gone-wild-inside-telerik-sharepoint-and-asp-net/
Logging
Too much Logging 
#1: Top Problem: log4j.callAppenders 
#2: Most of logging done from fillDetailmethod 
#3: Doing “DEBUG” log 
output: Is this necessary?
Exceptions vs. Log Messages 
http://apmblog.compuware.com/2014/04/01/dont-trust-your-log-files-how-and-why-to-monitor-all-exceptions/
Exception Logging Overload 
Tomcat logAbandoned=true flag causes 
many exceptions objects to be created 
http://apmblog.compuware.com/2012/08/01/top-performance-mistakes-when-moving-from-test-to-production-excessive-logging/
Exception Performance Overhead 
http://apmblog.compuware.com/2014/04/01/dont-trust-your-log-files-how-and-why-to-monitor-all-exceptions/
Memory
Oracle JDBC Driver Bug 
Each of the 10 JVMs per Host 
consumes up to 4.1GB until 
they crash (41GB per Host) 
It is a reoccurring 
pattern over months 
http://apmblog.compuware.com/2014/01/07/hunting-a-oracle-jdbc-memory-leak-crashing-an-80jvm-websphere-cluster/
No Object Cleanup Code! 
http://apmblog.compuware.com/2014/02/26/memory-leaks-load-balancing-and-deployment-settings-testing-lessons-learned-from-the-ecommerce-industry/
Bad Coding
Slow Custom RegEx 
http://apmblog.compuware.com/2014/10/16/15-minutes-spent-optimizing-performance-save-millions-lost-revenue/
Slow Content Rendering 
Rendering Methods take very long! 
Intializing GlyphLayout takes very long 
These slow rendering methods are called 
very frequently!
Synchronization 
http://apmblog.compuware.com/2013/09/24/100-performance-overhead-by-websphere-activity-log-when-dev-is-not-aware-of-settings-in-production/
15 Minute Sanity Check – Live Demo 
• Dynatrace
Summary – Backend Best Practices 
• Additional Blog Posts 
– http://apmblog.compuware.com/2013/04/10/top-8-application-performance-landmines/ 
– http://apmblog.compuware.com/2010/06/15/top-10-performance-problems-taken-from-zappos-monster-and-co/ 
• Online Java Enterprise Performance Book: http://javabook.compuware.com 
• Key Takeaways 
– Educate Developers 
– Understand Frameworks you are using
Hands-On
Deployment
From Zero to Performance Hero in Minutes - Agile Testing Days 2014 Potsdam
Common Deployment Mistakes 
• Missing Resource Files 
– Many HTTP 4xx 
– Many HTTP 3xx Redirects -> overhead! 
• Missing Configuration Files 
– Web Server Access Rules -> Leads to HTTP 4xx 
– Web Server -> App Server: Connection & Thread Pools 
• Bad Modules or Configuration Problems 
– Leading to bad requests and overhead 
– Rewrite and Redirect Modules: Long chains of redirects 
• 3rd Party: 
– CDN Configuration Issues leads to outdated content or HTTP 4xx 
– Slow 3rd Party calls impact performance 
• Delivery Problems 
– Web Site Up – but not available to the outside world
Missing Resource Files 
http://apmblog.compuware.com/2012/08/07/top-performance-mistakes-when-moving-from-test-to-production-deployment-mistakes/
Wrong Access Right Configuration 
http://apmblog.compuware.com/2012/08/07/top-performance-mistakes-when-moving-from-test-to-production-deployment-mistakes/
Bad Connection Pool Configuration 
http://apmblog.compuware.com/2014/02/04/when-it-really-is-the-database-to-blame-for-bad-performance-a-story-about-slow-statements-and-resulting-connection-pool-issues/
Bad Web Server Modules 
http://apmblog.compuware.com/2012/08/07/top-performance-mistakes-when-moving-from-test-to-production-deployment-mistakes/
CDN Configuration Problems 
http://apmblog.compuware.com/2014/01/31/technical-and-business-web-performance-tips-for-super-bowl-ad-landing-pages/
Monitor your CDNs 
http://apmblog.compuware.com/2014/03/20/when-cdns-and-ssl-bring-down-your-site-lessons-learned-from-doritos-and-esurance-during-the-super-bowl/
Monitor your other 3rd Parties 
http://apmblog.compuware.com/2011/11/21/ecommerce-business-impact-of-3rd-party-address-validation-service/
www.outageanalyzer.com
15 Minute Sanity Check – Live Demo 
• Dynatrace Application Monitoring 
– http://www.dynatrace.com/en/products/application-monitoring. 
html 
• Dynatrace Synthetic Monitoring 
– http://www.dynatrace.com/en/products/synthetic-monitoring. 
html 
• Outage Analyzer 
– www.outageanalyzer.com
Tooling Support 
• http://bit.ly/atd2014challenge 
• http://www.outageanalyzer.com 
• http://blog.dynatrace.com 
• http://de.slideshare.net/grabnerandi 
• @grabnerandi
Hands-On

More Related Content

PPTX
Deploy Faster Without Failing Faster - Metrics-Driven - Dynatrace User Groups...
PPTX
JavaOne 2015: Top Performance Patterns Deep Dive
PPTX
Sydney Continuous Delivery Meetup May 2014
PPTX
Hugs instead of Bugs: Dreaming of Quality Tools for Devs and Testers
PPTX
Web and App Performance: Top Problems to avoid to keep you out of the News
PPTX
Docker/DevOps Meetup: Metrics-Driven Continuous Performance and Scalabilty
PPTX
Four Practices to Fix Your Top .NET Performance Problems
PPTX
HSPS 2015 - SharePoint Performance Santiy Checks
Deploy Faster Without Failing Faster - Metrics-Driven - Dynatrace User Groups...
JavaOne 2015: Top Performance Patterns Deep Dive
Sydney Continuous Delivery Meetup May 2014
Hugs instead of Bugs: Dreaming of Quality Tools for Devs and Testers
Web and App Performance: Top Problems to avoid to keep you out of the News
Docker/DevOps Meetup: Metrics-Driven Continuous Performance and Scalabilty
Four Practices to Fix Your Top .NET Performance Problems
HSPS 2015 - SharePoint Performance Santiy Checks

What's hot (19)

PPTX
Java Performance Mistakes
PPTX
BTD2015 - Your Place In DevTOps is Finding Solutions - Not Just Bugs!
PPTX
Top Java Performance Problems and Metrics To Check in Your Pipeline
PPTX
Mobile User Experience: Auto Drive through Performance Metrics
PPTX
London WebPerf Meetup: End-To-End Performance Problems
PPTX
Top .NET, Java & Web Performance Mistakes - Meetup Jan 2015
PPTX
Application Quality Gates in Continuous Delivery: Deliver Better Software Fas...
PPTX
OOP 2016 - Building Software That Eats The World
PPTX
(R)evolutionize APM
PPTX
How to keep you out of the News: Web and End-to-End Performance Tips
PPTX
How to explain DevOps to your mom
PPTX
DevOps Pipelines and Metrics Driven Feedback Loops
PPTX
Metrics Driven DevOps - Automate Scalability and Performance Into your Pipeline
PPTX
Boston DevOps Days 2016: Implementing Metrics Driven DevOps - Why and How
PPT
Dyna trace
PPTX
Performance Metrics for your Build Pipeline - presented at Vienna WebPerf Oct...
PPTX
DevOps Days Toronto: From 6 Months Waterfall to 1 hour Code Deploys
PPTX
JavaOne - Performance Focused DevOps to Improve Cont Delivery
PPTX
StarWest 2013 Performance is not an afterthought – make it a part of your Agi...
Java Performance Mistakes
BTD2015 - Your Place In DevTOps is Finding Solutions - Not Just Bugs!
Top Java Performance Problems and Metrics To Check in Your Pipeline
Mobile User Experience: Auto Drive through Performance Metrics
London WebPerf Meetup: End-To-End Performance Problems
Top .NET, Java & Web Performance Mistakes - Meetup Jan 2015
Application Quality Gates in Continuous Delivery: Deliver Better Software Fas...
OOP 2016 - Building Software That Eats The World
(R)evolutionize APM
How to keep you out of the News: Web and End-to-End Performance Tips
How to explain DevOps to your mom
DevOps Pipelines and Metrics Driven Feedback Loops
Metrics Driven DevOps - Automate Scalability and Performance Into your Pipeline
Boston DevOps Days 2016: Implementing Metrics Driven DevOps - Why and How
Dyna trace
Performance Metrics for your Build Pipeline - presented at Vienna WebPerf Oct...
DevOps Days Toronto: From 6 Months Waterfall to 1 hour Code Deploys
JavaOne - Performance Focused DevOps to Improve Cont Delivery
StarWest 2013 Performance is not an afterthought – make it a part of your Agi...
Ad

Viewers also liked (20)

PPTX
Employee-First Leaders Create Customer-First Companies
PPT
Power point harp seal
PDF
Pengelolaan Barang
PDF
Hum2310 sm2015 syllabus
PDF
2003 Winter Newsletter
PDF
DIY to CMS
PDF
Jadwal motor gp
PPTX
Biologi Terapan - Laporan Perbedaan Pengaruh Bahan Tanam Terhadap Produktivi...
PDF
Alberti Center Colloquium Series - Dr. Jamie Ostrov
PDF
Hum2310 fa2014 proust questionnaire
PPT
Проект Жизнь
PPT
Оценка персонала
PDF
Comrades
PDF
Hum2220 sp2016 proust questionnaire
PDF
Tsahim 3
PDF
Architecture | Thinking Distributed to Improve Agility | Jamie Allsop
PDF
2008 Winter Newsletter
PPT
Eerste sessie ondernemersforum Unizo 21 01-2014
DOCX
My Day by Heidy
PDF
Hum2310 fa2015 proust questionnaire
Employee-First Leaders Create Customer-First Companies
Power point harp seal
Pengelolaan Barang
Hum2310 sm2015 syllabus
2003 Winter Newsletter
DIY to CMS
Jadwal motor gp
Biologi Terapan - Laporan Perbedaan Pengaruh Bahan Tanam Terhadap Produktivi...
Alberti Center Colloquium Series - Dr. Jamie Ostrov
Hum2310 fa2014 proust questionnaire
Проект Жизнь
Оценка персонала
Comrades
Hum2220 sp2016 proust questionnaire
Tsahim 3
Architecture | Thinking Distributed to Improve Agility | Jamie Allsop
2008 Winter Newsletter
Eerste sessie ondernemersforum Unizo 21 01-2014
My Day by Heidy
Hum2310 fa2015 proust questionnaire
Ad

Similar to From Zero to Performance Hero in Minutes - Agile Testing Days 2014 Potsdam (20)

PDF
Imagine 2014: The Devil is in the Details How to Optimize Magento Hosting to ...
PPTX
Single Page Applications: Your Browser is the OS!
PDF
Web Performance Optimization (WPO)
PPT
Make Drupal Run Fast - increase page load speed
KEY
improving the performance of Rails web Applications
PPT
Make Drupal Run Fast - increase page load speed
PDF
12-Step Program for Scaling Web Applications on PostgreSQL
PPTX
STP 2014 - Lets Learn from the Top Performance Mistakes in 2013
ODP
Cvcc performance tuning
PDF
Drupal Performance : DrupalCamp North
PDF
Salesforce Performance hacks - Client Side
PDF
Building performance into the new yahoo homepage presentation
PDF
10 Web Performance Lessons For the 21st Century
PPTX
Speed = $$$
PDF
Performance on the Yahoo! Homepage
PPTX
Building high performance and scalable share point applications
PDF
What is Nginx and Why You Should to Use it with Wordpress Hosting
PDF
"It’s not only Lambda! Economics behind Serverless" at JAX Conference in Mai ...
PDF
High Performance Drupal
PDF
PAC 2019 virtual Mark Tomlinson
Imagine 2014: The Devil is in the Details How to Optimize Magento Hosting to ...
Single Page Applications: Your Browser is the OS!
Web Performance Optimization (WPO)
Make Drupal Run Fast - increase page load speed
improving the performance of Rails web Applications
Make Drupal Run Fast - increase page load speed
12-Step Program for Scaling Web Applications on PostgreSQL
STP 2014 - Lets Learn from the Top Performance Mistakes in 2013
Cvcc performance tuning
Drupal Performance : DrupalCamp North
Salesforce Performance hacks - Client Side
Building performance into the new yahoo homepage presentation
10 Web Performance Lessons For the 21st Century
Speed = $$$
Performance on the Yahoo! Homepage
Building high performance and scalable share point applications
What is Nginx and Why You Should to Use it with Wordpress Hosting
"It’s not only Lambda! Economics behind Serverless" at JAX Conference in Mai ...
High Performance Drupal
PAC 2019 virtual Mark Tomlinson

More from Andreas Grabner (16)

PPTX
KCD Munich - Cloud Native Platform Dilemma - Turning it into an Opportunity
PPTX
OpenTelemetry For GitOps: Tracing Deployments from Git Commit to Production
PPTX
Don't Deploy Into the Dark: DORA Metrics for your K8s GitOps Deployments
PPTX
Observability and Orchestration of your GitOps Deployments with Keptn
PPTX
Release Readiness Validation with Keptn for Austrian Online Banking Software
PPTX
Adding Security to your SLO-based Release Validation with Keptn
PPTX
A Guide to Event-Driven SRE-inspired DevOps
PPTX
Jenkins Online Meetup - Automated SLI based Build Validation with Keptn
PPTX
Continuous Delivery and Automated Operations on k8s with keptn
PPTX
Keptn - Automated Operations & Continuous Delivery for k8s
PPTX
Shipping Code like a keptn: Continuous Delivery & Automated Operations on k8s
PPTX
Top Performance Problems in Distributed Architectures
PPTX
Applying AI to Performance Engineering: Shift-Left, Shift-Right, Self-Healing
PPTX
Monitoring as a Self-Service in Atlassian DevOps Toolchain
PPTX
AWS Summit - Trends in Advanced Monitoring for AWS environments
PPTX
DevOps Transformation at Dynatrace and with Dynatrace
KCD Munich - Cloud Native Platform Dilemma - Turning it into an Opportunity
OpenTelemetry For GitOps: Tracing Deployments from Git Commit to Production
Don't Deploy Into the Dark: DORA Metrics for your K8s GitOps Deployments
Observability and Orchestration of your GitOps Deployments with Keptn
Release Readiness Validation with Keptn for Austrian Online Banking Software
Adding Security to your SLO-based Release Validation with Keptn
A Guide to Event-Driven SRE-inspired DevOps
Jenkins Online Meetup - Automated SLI based Build Validation with Keptn
Continuous Delivery and Automated Operations on k8s with keptn
Keptn - Automated Operations & Continuous Delivery for k8s
Shipping Code like a keptn: Continuous Delivery & Automated Operations on k8s
Top Performance Problems in Distributed Architectures
Applying AI to Performance Engineering: Shift-Left, Shift-Right, Self-Healing
Monitoring as a Self-Service in Atlassian DevOps Toolchain
AWS Summit - Trends in Advanced Monitoring for AWS environments
DevOps Transformation at Dynatrace and with Dynatrace

Recently uploaded (20)

PDF
Design an Analysis of Algorithms II-SECS-1021-03
PDF
AI in Product Development-omnex systems
PPTX
L1 - Introduction to python Backend.pptx
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
DOCX
The Five Best AI Cover Tools in 2025.docx
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PPTX
history of c programming in notes for students .pptx
PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
medical staffing services at VALiNTRY
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PPTX
ManageIQ - Sprint 268 Review - Slide Deck
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
How Creative Agencies Leverage Project Management Software.pdf
PDF
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PDF
System and Network Administraation Chapter 3
Design an Analysis of Algorithms II-SECS-1021-03
AI in Product Development-omnex systems
L1 - Introduction to python Backend.pptx
2025 Textile ERP Trends: SAP, Odoo & Oracle
The Five Best AI Cover Tools in 2025.docx
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
history of c programming in notes for students .pptx
PTS Company Brochure 2025 (1).pdf.......
medical staffing services at VALiNTRY
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
ManageIQ - Sprint 268 Review - Slide Deck
How to Migrate SBCGlobal Email to Yahoo Easily
How Creative Agencies Leverage Project Management Software.pdf
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
Upgrade and Innovation Strategies for SAP ERP Customers
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
System and Network Administraation Chapter 3

From Zero to Performance Hero in Minutes - Agile Testing Days 2014 Potsdam

  • 1. Performance Clinic Workshop From Zero to Performance Hero Andreas Grabner (@grabnerandi) agrabner@dynatrace.com http://bit.ly/atd2014challenge
  • 2. Why Applications Fail and/or are Slow!
  • 3. Performance areas we cover today • Frontend • Backend • Deployment
  • 7. #Overloaded Web Pages • #1: Too many resources loaded on web page – Images: can be “sprited” – CSS and JS: can be merged • #2: Large Content – Images: do you need high-res? Compress! – CSS and JS: Minify, remove comments, … • #3: 3rd Party Content – Slow or too much • #4: AJAX to the MAX! – Too many AJAX Calls requesting too much data
  • 9. This is a heavy page
  • 10. This is a light page http://apmblog.compuware.com/2011/11/29/5-things-to-learn-from-jc-penney-and-other-strong-black-friday-and-cyber-monday-performers/
  • 11. softdrink.com during SuperBowl 434 Resources in total on that page: 230 JPEGs, 75 PNGs, 50 GIFs, … Total size of ~ 20MB http://apmblog.compuware.com/2014/01/31/technical-and-business-web-performance-tips-for-super-bowl-ad-landing-pages/
  • 12. Fifa.com during Worldcup http://apmblog.compuware.com/2014/05/21/is-the-fifa-world-cup-website-ready-for-the-tournament/
  • 13. Ad on air Kia.com during SuperBowl
  • 14. GoDaddy.com during SuperBowl 1h before SuperBowl KickOff 1h after Game ended
  • 15. Kia vs GoDaddy: The Facts! http://apmblog.compuware.com/2014/02/19/dns-tcp-and-size-application-performance-best-practices-of-super-bowl-advertisers/
  • 17. Do you really need all bells and whistles? # of Domains # of Resources Total Bytes DNS [ms] Connect [ms] With Third Party Content 26 176 2856 Kb 1286,82 1176,09 Without Third Party Content 2 59 897 Kb 0,91 22,25
  • 18. Too heavy AJAX/JavaScript 1.1s on my IE 10 to execute magicSpanLinks() The each loop calls this block of JavaScript for every span node 759 span nodes are processed by the anonymous function It adds the dynamically generated link and removes the old span We can see all the DOM Modifications and how this sums up in execution time
  • 19. 3rd Party JavaScript Problems Slow 3rd Party Libraries Slow jQuery Lookukps
  • 20. 15 Minute Sanity Check – Live Demo • Dynatrace Performance Test Center – http://www.dynatrace.com/en_us/application-performance-management/ products/performance-center.html • Dynatrace Browser Agent (formerly AJAX Edition) – http://apmblog.compuware.com/2014/07/01/can-monitor-web-performance- free/ • Fiddler – simulate other browsers – http://www.telerik.com/fiddler • PerfMap – HeatMap for a Website – https://github.com/zeman/perfmap
  • 21. Summary – WPO Best Practices • Additional Blog Posts – http://apmblog.compuware.com/2013/12/02/the-terrible-website-performance-mistakes-of-mobile-shopping-sites-in-2013/ – http://apmblog.compuware.com/2011/11/29/5-things-to-learn-from-jc-penney-and-other-strong-black-friday-and-cyber-monday- performers/ – http://apmblog.compuware.com/2010/08/25/top-10-client-side-performance-problems-in-web-2-0/ • Recommended Books from Steve Souders covering things like – Make fewer HTTP Requests – Proper Cache Settings – Optimize/Compress Content – Use CDNs – Watch out for 3rd Parties
  • 22. Tooling Support • http://bit.ly/dttrial • http://ajax.dynatrace.com • http://yslow.org • https://developers.google.com/speed/pagespeed • http://www.webpagetest.org/ • http://www.sitespeed.io/ • http://www.showslow.org • http://www.telerik.com/fiddler • https://github.com/zeman/perfmap • https://chrome.google.com/webstore/detail/user-agent-switcher-for-c/ djflhoibgkdhkhhcedjiklpkjnoahfmg
  • 27. Bad Architectural Decisions #1: Database Access N+1 Query Problem Loading Too Much Data Connection Leaks #2: External Frameworks Bad Configuration of O/R Mappers, e.g: Hibernate Worked well in Sample App Attitude #3: Excessive Logging & Exceptions Debug Logging turned on Using outdated logging libraries Exception Overload #4: Memory Leaks Keeping objects for too long Bad Cache Implementations #5: Bad Coding Synchronization to Death High on CPU
  • 31. Querying too much Data All of these requests with large size have the same problem in common: DB Access 24889 Calls to the Database! Tomcat needs to process all this data! SideEffect: High Memory Usage to process data -> results in high GC High GC is not the problem. It is just the symptom of too much data loaded!
  • 32. Too many connections 12444 individual connections to execute 12444 individual SQL Statements Individual executions are fast. But VOLUME is Classical N+1 Query Problem. The same SQL is executed many times with different WHERE Clause Optimize this by only calling it once with a better WHERE Clause killing you
  • 33. Filtering Data in Memory instead of DB Most lookups are done by getRoomCapacity Assumption: All the data loaded ends up in Hashtable. The lookups are then very expensive because these Tables are so huge
  • 35. Non Optimized Hibernate http://apmblog.compuware.com/2014/04/23/database-access-quality-metrics-for-your-continuous-delivery-pipeline/
  • 36. Non Optimized Telerik Controls http://apmblog.compuware.com/2014/04/03/database-access-patterns-gone-wild-inside-telerik-sharepoint-and-asp-net/
  • 38. Too much Logging #1: Top Problem: log4j.callAppenders #2: Most of logging done from fillDetailmethod #3: Doing “DEBUG” log output: Is this necessary?
  • 39. Exceptions vs. Log Messages http://apmblog.compuware.com/2014/04/01/dont-trust-your-log-files-how-and-why-to-monitor-all-exceptions/
  • 40. Exception Logging Overload Tomcat logAbandoned=true flag causes many exceptions objects to be created http://apmblog.compuware.com/2012/08/01/top-performance-mistakes-when-moving-from-test-to-production-excessive-logging/
  • 41. Exception Performance Overhead http://apmblog.compuware.com/2014/04/01/dont-trust-your-log-files-how-and-why-to-monitor-all-exceptions/
  • 43. Oracle JDBC Driver Bug Each of the 10 JVMs per Host consumes up to 4.1GB until they crash (41GB per Host) It is a reoccurring pattern over months http://apmblog.compuware.com/2014/01/07/hunting-a-oracle-jdbc-memory-leak-crashing-an-80jvm-websphere-cluster/
  • 44. No Object Cleanup Code! http://apmblog.compuware.com/2014/02/26/memory-leaks-load-balancing-and-deployment-settings-testing-lessons-learned-from-the-ecommerce-industry/
  • 46. Slow Custom RegEx http://apmblog.compuware.com/2014/10/16/15-minutes-spent-optimizing-performance-save-millions-lost-revenue/
  • 47. Slow Content Rendering Rendering Methods take very long! Intializing GlyphLayout takes very long These slow rendering methods are called very frequently!
  • 49. 15 Minute Sanity Check – Live Demo • Dynatrace
  • 50. Summary – Backend Best Practices • Additional Blog Posts – http://apmblog.compuware.com/2013/04/10/top-8-application-performance-landmines/ – http://apmblog.compuware.com/2010/06/15/top-10-performance-problems-taken-from-zappos-monster-and-co/ • Online Java Enterprise Performance Book: http://javabook.compuware.com • Key Takeaways – Educate Developers – Understand Frameworks you are using
  • 54. Common Deployment Mistakes • Missing Resource Files – Many HTTP 4xx – Many HTTP 3xx Redirects -> overhead! • Missing Configuration Files – Web Server Access Rules -> Leads to HTTP 4xx – Web Server -> App Server: Connection & Thread Pools • Bad Modules or Configuration Problems – Leading to bad requests and overhead – Rewrite and Redirect Modules: Long chains of redirects • 3rd Party: – CDN Configuration Issues leads to outdated content or HTTP 4xx – Slow 3rd Party calls impact performance • Delivery Problems – Web Site Up – but not available to the outside world
  • 55. Missing Resource Files http://apmblog.compuware.com/2012/08/07/top-performance-mistakes-when-moving-from-test-to-production-deployment-mistakes/
  • 56. Wrong Access Right Configuration http://apmblog.compuware.com/2012/08/07/top-performance-mistakes-when-moving-from-test-to-production-deployment-mistakes/
  • 57. Bad Connection Pool Configuration http://apmblog.compuware.com/2014/02/04/when-it-really-is-the-database-to-blame-for-bad-performance-a-story-about-slow-statements-and-resulting-connection-pool-issues/
  • 58. Bad Web Server Modules http://apmblog.compuware.com/2012/08/07/top-performance-mistakes-when-moving-from-test-to-production-deployment-mistakes/
  • 59. CDN Configuration Problems http://apmblog.compuware.com/2014/01/31/technical-and-business-web-performance-tips-for-super-bowl-ad-landing-pages/
  • 60. Monitor your CDNs http://apmblog.compuware.com/2014/03/20/when-cdns-and-ssl-bring-down-your-site-lessons-learned-from-doritos-and-esurance-during-the-super-bowl/
  • 61. Monitor your other 3rd Parties http://apmblog.compuware.com/2011/11/21/ecommerce-business-impact-of-3rd-party-address-validation-service/
  • 63. 15 Minute Sanity Check – Live Demo • Dynatrace Application Monitoring – http://www.dynatrace.com/en/products/application-monitoring. html • Dynatrace Synthetic Monitoring – http://www.dynatrace.com/en/products/synthetic-monitoring. html • Outage Analyzer – www.outageanalyzer.com
  • 64. Tooling Support • http://bit.ly/atd2014challenge • http://www.outageanalyzer.com • http://blog.dynatrace.com • http://de.slideshare.net/grabnerandi • @grabnerandi

Editor's Notes