Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Performance Pipeline and Java Performance Tools [JFall`17]

Performance Pipeline and Java Performance Tools [JFall`17]

This session describes the performance pipeline, a concept of mapping performance related work and activities towards the stages of a software delivery pipeline. The main idea behind the performance pipeline is being aware of the performance of your application and taking steps not to introduce performance regressions is a continuous process. We’ll list and explore the existing Java performance tools and when to apply them: profilers (general purpose and problem specific), micro/macro-benchmarks, memory leak analyzers, APM tools, load test libraries, etc. In the end, you’ll use the right tools and test the performance proactively, rather than solve problems your users report to you after the fact.

Oleg Šelajev

November 02, 2017
Tweet

More Decks by Oleg Šelajev

Other Decks in Programming

Transcript

  1. PERFORMANCE PIPELINE
    AND TOOLS
    Oleg Šelajev
    ZeroTurnaround

    View Slide

  2. OLEG SHELAJEV
    DEVELOPER ADVOCATE
    @SHELAJEV
    VIRTUAL JUG CO-LEADER
    TARTU GDG FOUNDER
    HEAD OF REBELLABS
    ABOUT ME

    View Slide

  3. View Slide

  4. View Slide

  5. View Slide

  6. View Slide

  7. TYPICAL WEB APP

    View Slide

  8. • Users are humans
    • Data comes from elsewhere
    • Scaling issues
    TYPICAL WEB APP

    View Slide

  9. • Users are humans
    • Data comes from elsewhere
    • Scaling issues
    TYPICAL WEB APP

    View Slide

  10. • Users are humans
    • Data comes from elsewhere
    • Scaling issues
    TYPICAL WEB APP

    View Slide

  11. View Slide

  12. View Slide

  13. View Slide

  14. SOFTWARE MANTRA
    1. Functionality
    2. Quality
    3. Performance
    4. Security

    View Slide

  15. TEST EARLY

    View Slide

  16. SHIPILEV
    CURVE
    https://twitter.com/
    shipilev/status/
    578193813946134529

    View Slide

  17. THE PERFORMANCE PIPELINE

    View Slide

  18. THE PERFORMANCE PIPELINE

    View Slide

  19. THE PERFORMANCE PIPELINE

    View Slide

  20. THE PERFORMANCE PIPELINE

    View Slide

  21. DEVELOPMENT

    View Slide

  22. View Slide

  23. PROFILERS
    • Your app is slow in general

    View Slide

  24. PROFILERS
    • Your app is slow in general
    • What’s the hottest code

    View Slide

  25. PROFILERS
    • Your app is slow in general
    • What’s the hottest code
    • What is a bottleneck

    View Slide

  26. PROFILERS
    • Your app is slow in general
    • What’s the hottest code
    • What is a bottleneck
    • No individual operation’s profile

    View Slide

  27. DEVELOPMENT

    View Slide

  28. BENCHMARKS
    • Time code execution
    • Establish a baseline
    • Confirm improvements
    • Require interpretation

    View Slide

  29. BENCHMARKS
    • Time code execution
    • Establish a baseline
    • Confirm improvements
    • Require interpretation

    View Slide

  30. BENCHMARKS
    • Time code execution
    • Establish a baseline
    • Confirm improvements
    • Require interpretation

    View Slide

  31. BENCHMARKS
    • Time code execution
    • Establish a baseline
    • Confirm improvements
    • Require interpretation

    View Slide

  32. View Slide

  33. View Slide

  34. View Slide

  35. THE PERFORMANCE PIPELINE

    View Slide

  36. View Slide

  37. XREBEL HUB & XREBEL LOCAL

    View Slide

  38. GATLING

    View Slide

  39. Gatling is a highly capable load testing
    tool. It is designed for ease of use,
    maintainability and high performance.

    View Slide

  40. View Slide

  41. STAGING

    View Slide

  42. THE PERFORMANCE PIPELINE

    View Slide

  43. View Slide

  44. View Slide

  45. View Slide

  46. View Slide

  47. http://blog.takipi.com/oracle-java-mission-control-the-ultimate-guide/#jmc
    -XX:+FLIGHTRECORDER

    View Slide

  48. http://blog.takipi.com/oracle-java-mission-control-the-ultimate-guide/#jmc

    View Slide

  49. CONCLUSION

    View Slide

  50. CONCLUSION

    View Slide

  51. REACH OUT!
    OLEG SHELAJEV
    @SHELAJEV

    View Slide