Save 37% off PRO during our Black Friday Sale! »

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.

5d01eb7205b787b5991db85a11ee5e68?s=128

Oleg Šelajev

November 02, 2017
Tweet

Transcript

  1. PERFORMANCE PIPELINE AND TOOLS Oleg Šelajev ZeroTurnaround

  2. OLEG SHELAJEV DEVELOPER ADVOCATE @SHELAJEV VIRTUAL JUG CO-LEADER TARTU GDG

    FOUNDER HEAD OF REBELLABS ABOUT ME
  3. None
  4. None
  5. None
  6. None
  7. TYPICAL WEB APP

  8. • Users are humans • Data comes from elsewhere •

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

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

    Scaling issues TYPICAL WEB APP
  11. None
  12. None
  13. None
  14. SOFTWARE MANTRA 1. Functionality 2. Quality 3. Performance 4. Security

  15. TEST EARLY

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

  17. THE PERFORMANCE PIPELINE

  18. THE PERFORMANCE PIPELINE

  19. THE PERFORMANCE PIPELINE

  20. THE PERFORMANCE PIPELINE

  21. DEVELOPMENT

  22. None
  23. PROFILERS • Your app is slow in general

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

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

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

    the hottest code • What is a bottleneck • No individual operation’s profile
  27. DEVELOPMENT

  28. BENCHMARKS • Time code execution • Establish a baseline •

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

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

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

    Confirm improvements • Require interpretation
  32. None
  33. None
  34. None
  35. THE PERFORMANCE PIPELINE

  36. None
  37. XREBEL HUB & XREBEL LOCAL

  38. GATLING

  39. Gatling is a highly capable load testing tool. It is

    designed for ease of use, maintainability and high performance.
  40. None
  41. STAGING

  42. THE PERFORMANCE PIPELINE

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

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

  49. CONCLUSION

  50. CONCLUSION

  51. REACH OUT! OLEG SHELAJEV @SHELAJEV