SlideShare a Scribd company logo
A Challenging Craft
That‘s me
 My day to day job is to help customers
 fixing software performance

                                                  Fabian
 People really struggle with performance
 But most of them struggle with coding as well



                   If creating good software is a craft,
                    performance should be one as well

  Customer
 Some say:
 „creating software is art“

 Art and software development
 need creativity
                                 Art
 Fixing performance is
 often considered magic

 Magic is something
   only you understand
   you do in a hard to
                          Magic
    follow fashion
 Correctness in detail


 Research and verification




                              Craft
 All types share
   Passion
   Learning
   Experience



                    Which way?
 Value == Money


 We need a business case
 for performance

                                   Money
 What is the impact of     (in parts of the world)
 bad performance?
 Amazon measured the
 impact of 100ms delay

 Sales dropped by 1%


 In a year that would be   Typical (?) retailer
 245 Million USD
 Instable or slow software
 delays time to market

 Slow software is no longer
 accepted by customers
                               New?
 Insurances like to send
 paper via mail

 Not meeting deadlines can
 cause
   Legal issues
                              Snail Mail
   Canceled contracts
   Loss of money
Is A Craft
 Calculate Execution Time
   Code x = 5ms
   Code y = 2*x = 10ms


 Know code in advance
 Waterfall approach                    Performance
                                        Engineering


 Proving the performance of software
 is more difficult than proving the correct function
 We prove functional
 correctness with automated
 tests

 High coverage

                                          Look closely


 Run examples and see if they are fast
 Done late in project


 If done at all
                               How much load
                              breaks the system?

 No chance to fix anything
 Avoid human errors


 Require machine decidable
 fail / pass check

 What is the measure?        42cm are fast?
 Functionality is independent
 of the environment

 Performance characteristics
 can vary
   Unusable slow
                                 Our Environment
   Lightning fast
 Underpowered hardware


 Loaded with tools
 and stuff

                                Developers
 Luckily not the production   driving fast
 environment
 More power


 But also more load


 How much faster is
 production than development?    Crawling Production


 Any estimation on how much better or worse the
 environments are is incorrect
 Real performance tests
 need real systems

 Test in production


 Clone production         Stop playing
 infrastructure
 Amount of data is
 unpredictable

 Application usage is
 unpredictable
                                     Tweets per second


 How thought of using Twitter for build notification?
Dev             Prod
 Test Test1     Fabian Lange
 Test Test2     Uwe Friedrichsen
 Test Test3     Mirko Novakovic
 Showing 3/3    Showing 3/6,434,867
 Syntethic load tests are
  unrealistic

 No application has hundreds
  of users doing the same
  procedure again and again
                                         Load Baselines


 Understanding real load is difficult
 Real usage cannot
 be generated

 Real usage can be
 captured & replayed
                       Live Systems are live
 Be careful 
 Continous performance tests


 Close to real setup
                                App Monitor

 Observe production behavior


 Fix issues fast
 Conflicting interests
   Development: Change
   Operations: Stability

                            Another Movement
 Need to work together
Is A Challenge
 Can‘t we do anything before
 production?

 We want to deliver something,   Let users test?
 which works perfectly!
 Optimizations might have
 no impact

 Micro-Optimizations are    Missed Target
 dangerous
 Soft Measure


 Works good for code quality
                                          Sonar



 Are there performance best practices?
 Yahoo Best Practices


 Google Best Practices


 Plenty of tools
                          Good Waterfalls

 Work well
 Naive implementation looks fine




 But is not multithreaded
 This is threadsafe




 But slow
 This is correct




 Correct synchronisation is hard
 Check Log Level (Ugly)




 Check Log Level (Nicer)
 Static SimpleDateFormat is wrong




 Working with Dates
 and Calendars is
 very expensive!
 Some people misuse it as loop




 Results are unexpected behavior or slow execution
 Analyzes Java Bytecode


 Knows 58 Performance Bugs


 Most are rather trivial
                              Indeed finds bugs
 Detecting deadlocks
 is difficult

 Many thesis's on deadlock
 detection
                              Verifies Java
 Few code
 Hidden Gem


 Tries to cause Deadlocks



                                   IBM
                             Support Assistant
 We need more and reliable
   Code Performance Metrics
   Best Practices
   Tools
Is A Challenging Craft
Q&A
   Art                                                  YSlow
    flickr.com/photos/37202375@N03/3490107873             developer.yahoo.com/yslow
   Magic                                                Pagespeed
    flickr.com/photos/princes_milady/4238912548           code.google.com/speed/page-speed
   Crossroads                                           Java Locking
    flickr.com/photos/40481200@N06/4857965280             en.wikipedia.org/wiki/Double-checked_locking
   Envelopes                                            PHP Ternary Operator
    flickr.com/photos/creatingmotherhood/3663914542       fabien.potencier.org/article/48/the-php-ternary-
                                                          operator-fast-or-not
   Test
    flickr.com/photos/cayusa/2159980025                  JavaScript for .. In
                                                          stackoverflow.com/questions/500504/javascript-for-
   Scales                                                in-with-arrays
    flickr.com/photos/reinvented/309512320
                                                         Findbugs
   Tape Measure                                          findbugs.sourceforge.net
    flickr.com/photos/hippie/2466583497
                                                         Jlint
   World                                                 jlint.sourceforge.net
    flickr.com/photos/heimdahlrecounts/4346082743
                                                         IBM Multicore SDK
   Toys                                                  www-
    flickr.com/photos/sbluerock/364123380                 01.ibm.com/support/docview.wss?uid=swg21456945
   TPS
    flickr.com/photos/twitteroffice/5681263084
   Bananas
    flickr.com/photos/design-dog/1249337589
   Dart
    flickr.com/photos/malavoda/2369876508

More Related Content

What's hot

Measuring Web Performance - HighEdWeb Edition
Measuring Web Performance - HighEdWeb EditionMeasuring Web Performance - HighEdWeb Edition
Measuring Web Performance - HighEdWeb Edition
Dave Olsen
 
DevOps Note 20120224
DevOps Note 20120224DevOps Note 20120224
DevOps Note 20120224
Hirokazu MORIKAWA
 
Application compatibility final
Application compatibility finalApplication compatibility final
Application compatibility final
Harold Wong
 
Adam carmi
Adam carmiAdam carmi
Adam carmi
CodeFest
 
Everything You Know is Not Quite Right Anymore: Rethinking Best Practices to ...
Everything You Know is Not Quite Right Anymore: Rethinking Best Practices to ...Everything You Know is Not Quite Right Anymore: Rethinking Best Practices to ...
Everything You Know is Not Quite Right Anymore: Rethinking Best Practices to ...
Dave Olsen
 
Engineering culture
Engineering cultureEngineering culture
Engineering culturePamela Fox
 
Justin Ison
Justin IsonJustin Ison
Justin Ison
CodeFest
 
Observability for Emerging Infra (what got you here won't get you there)
Observability for Emerging Infra (what got you here won't get you there)Observability for Emerging Infra (what got you here won't get you there)
Observability for Emerging Infra (what got you here won't get you there)
Charity Majors
 
Automated Battle Scars Se Conf 2011
Automated Battle Scars Se Conf 2011Automated Battle Scars Se Conf 2011
Automated Battle Scars Se Conf 2011
Adam Christian
 
Teaching Elephants to Dance (and Fly!) A Developer's Journey to Digital Trans...
Teaching Elephants to Dance (and Fly!) A Developer's Journey to Digital Trans...Teaching Elephants to Dance (and Fly!) A Developer's Journey to Digital Trans...
Teaching Elephants to Dance (and Fly!) A Developer's Journey to Digital Trans...
Burr Sutter
 
Bootstrap cheat-sheet-websitesetup.org
Bootstrap cheat-sheet-websitesetup.org Bootstrap cheat-sheet-websitesetup.org
Bootstrap cheat-sheet-websitesetup.org
Ali Bakhtiari
 
A call to JS Developers - Let’s stop trying to impress each other and start b...
A call to JS Developers - Let’s stop trying to impress each other and start b...A call to JS Developers - Let’s stop trying to impress each other and start b...
A call to JS Developers - Let’s stop trying to impress each other and start b...
Christian Heilmann
 
Chaos Engineering
Chaos EngineeringChaos Engineering
Chaos Engineering
Yury Roa
 
Be a Quality Evangelist
Be a Quality EvangelistBe a Quality Evangelist
Be a Quality Evangelist
yusra123
 
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
John Allspaw
 
Chaos Engineering, When should you release the monkeys?
Chaos Engineering, When should you release the monkeys?Chaos Engineering, When should you release the monkeys?
Chaos Engineering, When should you release the monkeys?
Thoughtworks
 
Chaos Engineering: Injecting Failure for Building Resilience in Systems
Chaos Engineering: Injecting Failure for Building Resilience in SystemsChaos Engineering: Injecting Failure for Building Resilience in Systems
Chaos Engineering: Injecting Failure for Building Resilience in Systems
Yury Roa
 
Failure the-good-parts
Failure the-good-partsFailure the-good-parts
Failure the-good-partslegendofklang
 

What's hot (19)

Measuring Web Performance - HighEdWeb Edition
Measuring Web Performance - HighEdWeb EditionMeasuring Web Performance - HighEdWeb Edition
Measuring Web Performance - HighEdWeb Edition
 
DevOps Note 20120224
DevOps Note 20120224DevOps Note 20120224
DevOps Note 20120224
 
Application compatibility final
Application compatibility finalApplication compatibility final
Application compatibility final
 
Adam carmi
Adam carmiAdam carmi
Adam carmi
 
Everything You Know is Not Quite Right Anymore: Rethinking Best Practices to ...
Everything You Know is Not Quite Right Anymore: Rethinking Best Practices to ...Everything You Know is Not Quite Right Anymore: Rethinking Best Practices to ...
Everything You Know is Not Quite Right Anymore: Rethinking Best Practices to ...
 
Engineering culture
Engineering cultureEngineering culture
Engineering culture
 
Justin Ison
Justin IsonJustin Ison
Justin Ison
 
Website qa
Website qaWebsite qa
Website qa
 
Observability for Emerging Infra (what got you here won't get you there)
Observability for Emerging Infra (what got you here won't get you there)Observability for Emerging Infra (what got you here won't get you there)
Observability for Emerging Infra (what got you here won't get you there)
 
Automated Battle Scars Se Conf 2011
Automated Battle Scars Se Conf 2011Automated Battle Scars Se Conf 2011
Automated Battle Scars Se Conf 2011
 
Teaching Elephants to Dance (and Fly!) A Developer's Journey to Digital Trans...
Teaching Elephants to Dance (and Fly!) A Developer's Journey to Digital Trans...Teaching Elephants to Dance (and Fly!) A Developer's Journey to Digital Trans...
Teaching Elephants to Dance (and Fly!) A Developer's Journey to Digital Trans...
 
Bootstrap cheat-sheet-websitesetup.org
Bootstrap cheat-sheet-websitesetup.org Bootstrap cheat-sheet-websitesetup.org
Bootstrap cheat-sheet-websitesetup.org
 
A call to JS Developers - Let’s stop trying to impress each other and start b...
A call to JS Developers - Let’s stop trying to impress each other and start b...A call to JS Developers - Let’s stop trying to impress each other and start b...
A call to JS Developers - Let’s stop trying to impress each other and start b...
 
Chaos Engineering
Chaos EngineeringChaos Engineering
Chaos Engineering
 
Be a Quality Evangelist
Be a Quality EvangelistBe a Quality Evangelist
Be a Quality Evangelist
 
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
 
Chaos Engineering, When should you release the monkeys?
Chaos Engineering, When should you release the monkeys?Chaos Engineering, When should you release the monkeys?
Chaos Engineering, When should you release the monkeys?
 
Chaos Engineering: Injecting Failure for Building Resilience in Systems
Chaos Engineering: Injecting Failure for Building Resilience in SystemsChaos Engineering: Injecting Failure for Building Resilience in Systems
Chaos Engineering: Injecting Failure for Building Resilience in Systems
 
Failure the-good-parts
Failure the-good-partsFailure the-good-parts
Failure the-good-parts
 

Viewers also liked

Eclipse Rich Ajax Platform
Eclipse Rich Ajax PlatformEclipse Rich Ajax Platform
Eclipse Rich Ajax Platform
Fabian Lange
 
#smabuja: SEO, Blogs and LinkedIn
#smabuja: SEO, Blogs and LinkedIn#smabuja: SEO, Blogs and LinkedIn
#smabuja: SEO, Blogs and LinkedIn
Seismonaut
 
Kunde ist nicht gleich Kunde. Kunden Profiling und Kundenanalyse.
Kunde ist nicht gleich Kunde. Kunden Profiling und Kundenanalyse.Kunde ist nicht gleich Kunde. Kunden Profiling und Kundenanalyse.
Kunde ist nicht gleich Kunde. Kunden Profiling und Kundenanalyse.
MAX2014DACH
 
SPDY - http reloaded - WebTechConference 2012
SPDY - http reloaded - WebTechConference 2012SPDY - http reloaded - WebTechConference 2012
SPDY - http reloaded - WebTechConference 2012
Fabian Lange
 
Aspects of modern APM solutions
Aspects of modern APM solutionsAspects of modern APM solutions
Aspects of modern APM solutions
Fabian Lange
 
Web Performance Optimization - JAX 2011 Talk
Web Performance Optimization - JAX 2011 TalkWeb Performance Optimization - JAX 2011 Talk
Web Performance Optimization - JAX 2011 Talk
Fabian Lange
 

Viewers also liked (6)

Eclipse Rich Ajax Platform
Eclipse Rich Ajax PlatformEclipse Rich Ajax Platform
Eclipse Rich Ajax Platform
 
#smabuja: SEO, Blogs and LinkedIn
#smabuja: SEO, Blogs and LinkedIn#smabuja: SEO, Blogs and LinkedIn
#smabuja: SEO, Blogs and LinkedIn
 
Kunde ist nicht gleich Kunde. Kunden Profiling und Kundenanalyse.
Kunde ist nicht gleich Kunde. Kunden Profiling und Kundenanalyse.Kunde ist nicht gleich Kunde. Kunden Profiling und Kundenanalyse.
Kunde ist nicht gleich Kunde. Kunden Profiling und Kundenanalyse.
 
SPDY - http reloaded - WebTechConference 2012
SPDY - http reloaded - WebTechConference 2012SPDY - http reloaded - WebTechConference 2012
SPDY - http reloaded - WebTechConference 2012
 
Aspects of modern APM solutions
Aspects of modern APM solutionsAspects of modern APM solutions
Aspects of modern APM solutions
 
Web Performance Optimization - JAX 2011 Talk
Web Performance Optimization - JAX 2011 TalkWeb Performance Optimization - JAX 2011 Talk
Web Performance Optimization - JAX 2011 Talk
 

Similar to Performance - a challenging craft

Learn why use selenium with 3 million dollar bugs!
Learn why use selenium with 3 million dollar bugs!Learn why use selenium with 3 million dollar bugs!
Learn why use selenium with 3 million dollar bugs!
Edureka!
 
Learn why use selenium with 3 million dollar bugs!
Learn why use selenium with 3 million dollar bugs!Learn why use selenium with 3 million dollar bugs!
Learn why use selenium with 3 million dollar bugs!
Edureka!
 
XRebel - Real Time Insight, Faster Apps
XRebel - Real Time Insight, Faster AppsXRebel - Real Time Insight, Faster Apps
XRebel - Real Time Insight, Faster Apps
ZeroTurnaround
 
Designing Self-maintaining UI Tests for Web Applications
Designing Self-maintaining UI Tests for Web ApplicationsDesigning Self-maintaining UI Tests for Web Applications
Designing Self-maintaining UI Tests for Web Applications
TechWell
 
10 Ways To Improve Your Code( Neal Ford)
10  Ways To  Improve  Your  Code( Neal  Ford)10  Ways To  Improve  Your  Code( Neal  Ford)
10 Ways To Improve Your Code( Neal Ford)guestebde
 
Testing in a glance
Testing in a glanceTesting in a glance
Testing in a glance
Rajesh Kumar
 
Virtual Data : Eliminating the data constraint in Application Development
Virtual Data :  Eliminating the data constraint in Application DevelopmentVirtual Data :  Eliminating the data constraint in Application Development
Virtual Data : Eliminating the data constraint in Application Development
Kyle Hailey
 
Quality of Bug Reports in Open Source
Quality of Bug Reports in Open SourceQuality of Bug Reports in Open Source
Quality of Bug Reports in Open Source
Thomas Zimmermann
 
Performance Quality Metrics for Mobile Web and Mobile Native - Agile Testing ...
Performance Quality Metrics for Mobile Web and Mobile Native - Agile Testing ...Performance Quality Metrics for Mobile Web and Mobile Native - Agile Testing ...
Performance Quality Metrics for Mobile Web and Mobile Native - Agile Testing ...
Andreas Grabner
 
TxJS 2011
TxJS 2011TxJS 2011
TxJS 2011
Brian LeRoux
 
BTD2015 - Your Place In DevTOps is Finding Solutions - Not Just Bugs!
BTD2015 - Your Place In DevTOps is Finding Solutions - Not Just Bugs!BTD2015 - Your Place In DevTOps is Finding Solutions - Not Just Bugs!
BTD2015 - Your Place In DevTOps is Finding Solutions - Not Just Bugs!
Andreas Grabner
 
I Smell A RAT- Rapid Application Testing
I Smell A RAT- Rapid Application TestingI Smell A RAT- Rapid Application Testing
I Smell A RAT- Rapid Application TestingPeter Presnell
 
Chaos Engineering Without Observability ... Is Just Chaos
Chaos Engineering Without Observability ... Is Just ChaosChaos Engineering Without Observability ... Is Just Chaos
Chaos Engineering Without Observability ... Is Just Chaos
Charity Majors
 
Why test with flex unit
Why test with flex unitWhy test with flex unit
Why test with flex unit
michael.labriola
 
assertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
assertYourself - Breaking the Theories and Assumptions of Unit Testing in FlexassertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
assertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
michael.labriola
 
Taming the Testing Beast - AgileDC 2012
Taming the Testing Beast - AgileDC 2012Taming the Testing Beast - AgileDC 2012
Taming the Testing Beast - AgileDC 2012
Daniel Doubrovkine
 
Zagat.com Case Study (DrupalCon Denver 2012)
Zagat.com Case Study (DrupalCon Denver 2012)Zagat.com Case Study (DrupalCon Denver 2012)
Zagat.com Case Study (DrupalCon Denver 2012)
Phase2
 

Similar to Performance - a challenging craft (20)

Learn why use selenium with 3 million dollar bugs!
Learn why use selenium with 3 million dollar bugs!Learn why use selenium with 3 million dollar bugs!
Learn why use selenium with 3 million dollar bugs!
 
Learn why use selenium with 3 million dollar bugs!
Learn why use selenium with 3 million dollar bugs!Learn why use selenium with 3 million dollar bugs!
Learn why use selenium with 3 million dollar bugs!
 
XRebel - Real Time Insight, Faster Apps
XRebel - Real Time Insight, Faster AppsXRebel - Real Time Insight, Faster Apps
XRebel - Real Time Insight, Faster Apps
 
Designing Self-maintaining UI Tests for Web Applications
Designing Self-maintaining UI Tests for Web ApplicationsDesigning Self-maintaining UI Tests for Web Applications
Designing Self-maintaining UI Tests for Web Applications
 
10 Ways To Improve Your Code( Neal Ford)
10  Ways To  Improve  Your  Code( Neal  Ford)10  Ways To  Improve  Your  Code( Neal  Ford)
10 Ways To Improve Your Code( Neal Ford)
 
Tec314f
Tec314fTec314f
Tec314f
 
Testing in a glance
Testing in a glanceTesting in a glance
Testing in a glance
 
10 Ways To Improve Your Code
10 Ways To Improve Your Code10 Ways To Improve Your Code
10 Ways To Improve Your Code
 
Virtual Data : Eliminating the data constraint in Application Development
Virtual Data :  Eliminating the data constraint in Application DevelopmentVirtual Data :  Eliminating the data constraint in Application Development
Virtual Data : Eliminating the data constraint in Application Development
 
Tec314
Tec314Tec314
Tec314
 
Quality of Bug Reports in Open Source
Quality of Bug Reports in Open SourceQuality of Bug Reports in Open Source
Quality of Bug Reports in Open Source
 
Performance Quality Metrics for Mobile Web and Mobile Native - Agile Testing ...
Performance Quality Metrics for Mobile Web and Mobile Native - Agile Testing ...Performance Quality Metrics for Mobile Web and Mobile Native - Agile Testing ...
Performance Quality Metrics for Mobile Web and Mobile Native - Agile Testing ...
 
TxJS 2011
TxJS 2011TxJS 2011
TxJS 2011
 
BTD2015 - Your Place In DevTOps is Finding Solutions - Not Just Bugs!
BTD2015 - Your Place In DevTOps is Finding Solutions - Not Just Bugs!BTD2015 - Your Place In DevTOps is Finding Solutions - Not Just Bugs!
BTD2015 - Your Place In DevTOps is Finding Solutions - Not Just Bugs!
 
I Smell A RAT- Rapid Application Testing
I Smell A RAT- Rapid Application TestingI Smell A RAT- Rapid Application Testing
I Smell A RAT- Rapid Application Testing
 
Chaos Engineering Without Observability ... Is Just Chaos
Chaos Engineering Without Observability ... Is Just ChaosChaos Engineering Without Observability ... Is Just Chaos
Chaos Engineering Without Observability ... Is Just Chaos
 
Why test with flex unit
Why test with flex unitWhy test with flex unit
Why test with flex unit
 
assertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
assertYourself - Breaking the Theories and Assumptions of Unit Testing in FlexassertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
assertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
 
Taming the Testing Beast - AgileDC 2012
Taming the Testing Beast - AgileDC 2012Taming the Testing Beast - AgileDC 2012
Taming the Testing Beast - AgileDC 2012
 
Zagat.com Case Study (DrupalCon Denver 2012)
Zagat.com Case Study (DrupalCon Denver 2012)Zagat.com Case Study (DrupalCon Denver 2012)
Zagat.com Case Study (DrupalCon Denver 2012)
 

More from Fabian Lange

The SPDY Protocol
The SPDY ProtocolThe SPDY Protocol
The SPDY Protocol
Fabian Lange
 
Web Performance Optimization - Web Tech Conference 2011 Talk
Web Performance Optimization - Web Tech Conference 2011 TalkWeb Performance Optimization - Web Tech Conference 2011 Talk
Web Performance Optimization - Web Tech Conference 2011 TalkFabian Lange
 
Agile Development of High Performance Applications
Agile Development of High Performance ApplicationsAgile Development of High Performance Applications
Agile Development of High Performance Applications
Fabian Lange
 
Rich Ajax Platform - Programming for Web and Rich Client
Rich Ajax Platform - Programming for Web and Rich ClientRich Ajax Platform - Programming for Web and Rich Client
Rich Ajax Platform - Programming for Web and Rich Client
Fabian Lange
 
Ant Maven
Ant MavenAnt Maven
Ant Maven
Fabian Lange
 
Codecentric At Ajax World Conference San Jose
Codecentric At Ajax World Conference San JoseCodecentric At Ajax World Conference San Jose
Codecentric At Ajax World Conference San Jose
Fabian Lange
 
Full Stack Web Application Performance Tuning
Full Stack Web Application Performance TuningFull Stack Web Application Performance Tuning
Full Stack Web Application Performance Tuning
Fabian Lange
 

More from Fabian Lange (7)

The SPDY Protocol
The SPDY ProtocolThe SPDY Protocol
The SPDY Protocol
 
Web Performance Optimization - Web Tech Conference 2011 Talk
Web Performance Optimization - Web Tech Conference 2011 TalkWeb Performance Optimization - Web Tech Conference 2011 Talk
Web Performance Optimization - Web Tech Conference 2011 Talk
 
Agile Development of High Performance Applications
Agile Development of High Performance ApplicationsAgile Development of High Performance Applications
Agile Development of High Performance Applications
 
Rich Ajax Platform - Programming for Web and Rich Client
Rich Ajax Platform - Programming for Web and Rich ClientRich Ajax Platform - Programming for Web and Rich Client
Rich Ajax Platform - Programming for Web and Rich Client
 
Ant Maven
Ant MavenAnt Maven
Ant Maven
 
Codecentric At Ajax World Conference San Jose
Codecentric At Ajax World Conference San JoseCodecentric At Ajax World Conference San Jose
Codecentric At Ajax World Conference San Jose
 
Full Stack Web Application Performance Tuning
Full Stack Web Application Performance TuningFull Stack Web Application Performance Tuning
Full Stack Web Application Performance Tuning
 

Recently uploaded

FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 

Recently uploaded (20)

FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 

Performance - a challenging craft

  • 2. That‘s me  My day to day job is to help customers fixing software performance Fabian  People really struggle with performance  But most of them struggle with coding as well  If creating good software is a craft, performance should be one as well Customer
  • 3.
  • 4.  Some say: „creating software is art“  Art and software development need creativity Art
  • 5.  Fixing performance is often considered magic  Magic is something  only you understand  you do in a hard to Magic follow fashion
  • 6.  Correctness in detail  Research and verification Craft
  • 7.  All types share  Passion  Learning  Experience Which way?
  • 8.
  • 9.
  • 10.
  • 11.  Value == Money  We need a business case for performance Money  What is the impact of (in parts of the world) bad performance?
  • 12.  Amazon measured the impact of 100ms delay  Sales dropped by 1%  In a year that would be Typical (?) retailer 245 Million USD
  • 13.  Instable or slow software delays time to market  Slow software is no longer accepted by customers New?
  • 14.  Insurances like to send paper via mail  Not meeting deadlines can cause  Legal issues Snail Mail  Canceled contracts  Loss of money
  • 16.  Calculate Execution Time  Code x = 5ms  Code y = 2*x = 10ms  Know code in advance  Waterfall approach Performance Engineering  Proving the performance of software is more difficult than proving the correct function
  • 17.  We prove functional correctness with automated tests  High coverage Look closely  Run examples and see if they are fast
  • 18.  Done late in project  If done at all How much load breaks the system?  No chance to fix anything
  • 19.  Avoid human errors  Require machine decidable fail / pass check  What is the measure? 42cm are fast?
  • 20.  Functionality is independent of the environment  Performance characteristics can vary  Unusable slow Our Environment  Lightning fast
  • 21.  Underpowered hardware  Loaded with tools and stuff Developers  Luckily not the production driving fast environment
  • 22.  More power  But also more load  How much faster is production than development? Crawling Production  Any estimation on how much better or worse the environments are is incorrect
  • 23.  Real performance tests need real systems  Test in production  Clone production Stop playing infrastructure
  • 24.  Amount of data is unpredictable  Application usage is unpredictable Tweets per second  How thought of using Twitter for build notification?
  • 25. Dev Prod  Test Test1  Fabian Lange  Test Test2  Uwe Friedrichsen  Test Test3  Mirko Novakovic  Showing 3/3  Showing 3/6,434,867
  • 26.  Syntethic load tests are unrealistic  No application has hundreds of users doing the same procedure again and again Load Baselines  Understanding real load is difficult
  • 27.  Real usage cannot be generated  Real usage can be captured & replayed Live Systems are live  Be careful 
  • 28.  Continous performance tests  Close to real setup App Monitor  Observe production behavior  Fix issues fast
  • 29.  Conflicting interests  Development: Change  Operations: Stability Another Movement  Need to work together
  • 31.  Can‘t we do anything before production?  We want to deliver something, Let users test? which works perfectly!
  • 32.  Optimizations might have no impact  Micro-Optimizations are Missed Target dangerous
  • 33.  Soft Measure  Works good for code quality Sonar  Are there performance best practices?
  • 34.  Yahoo Best Practices  Google Best Practices  Plenty of tools Good Waterfalls  Work well
  • 35.  Naive implementation looks fine  But is not multithreaded
  • 36.  This is threadsafe  But slow
  • 37.  This is correct  Correct synchronisation is hard
  • 38.  Check Log Level (Ugly)  Check Log Level (Nicer)
  • 39.  Static SimpleDateFormat is wrong  Working with Dates and Calendars is very expensive!
  • 40.
  • 41.  Some people misuse it as loop  Results are unexpected behavior or slow execution
  • 42.  Analyzes Java Bytecode  Knows 58 Performance Bugs  Most are rather trivial Indeed finds bugs
  • 43.  Detecting deadlocks is difficult  Many thesis's on deadlock detection Verifies Java  Few code
  • 44.  Hidden Gem  Tries to cause Deadlocks IBM Support Assistant
  • 45.  We need more and reliable  Code Performance Metrics  Best Practices  Tools
  • 47. Q&A
  • 48. Art  YSlow flickr.com/photos/37202375@N03/3490107873 developer.yahoo.com/yslow  Magic  Pagespeed flickr.com/photos/princes_milady/4238912548 code.google.com/speed/page-speed  Crossroads  Java Locking flickr.com/photos/40481200@N06/4857965280 en.wikipedia.org/wiki/Double-checked_locking  Envelopes  PHP Ternary Operator flickr.com/photos/creatingmotherhood/3663914542 fabien.potencier.org/article/48/the-php-ternary- operator-fast-or-not  Test flickr.com/photos/cayusa/2159980025  JavaScript for .. In stackoverflow.com/questions/500504/javascript-for-  Scales in-with-arrays flickr.com/photos/reinvented/309512320  Findbugs  Tape Measure findbugs.sourceforge.net flickr.com/photos/hippie/2466583497  Jlint  World jlint.sourceforge.net flickr.com/photos/heimdahlrecounts/4346082743  IBM Multicore SDK  Toys www- flickr.com/photos/sbluerock/364123380 01.ibm.com/support/docview.wss?uid=swg21456945  TPS flickr.com/photos/twitteroffice/5681263084  Bananas flickr.com/photos/design-dog/1249337589  Dart flickr.com/photos/malavoda/2369876508