• Like

Loading…

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

AtlasCamp 2010: JIRA Plugin Performance Tuning - Alex Hennecke

  • 1,781 views
Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,781
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
10
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Everyone likes fast things
  • 2. Alex Hennecke Senior Java Dev GreenHopper JIRA Plugin
  • 3. JIRA Plugin Performance Tuning Why tune a plugin? Server Side Profiling Client Side Profiling Performance Pitfalls
  • 4. Why tune a plugin? JIRA is optimised for own use cases Plugins may do crazy, unexpected things with JIRA's data Slow applications suck
  • 5. Server Side Profiling allows you to... find long-running code find code waiting for locks but... profiling can have deceptive overhead depends on external factors like GC, I/O, ...
  • 6. JIRA and JProfiler add profile option to catalina.sh watch the console for when to connect the profiler
  • 7. JProfiler CPU View identify long-running call see the chain of calls that leads to slow methods
  • 8. Profiling under Load Keep an eye on memory usage and GC times jconsole
  • 9. Profiling under Load Watch for pool size limits server.xml
  • 10. Wrap-Up Setting up JIRA for Profiling is not hard Profiling saves time pinning down performance problems
  • 11. Client Side Profiling why? rich UIs are heavy on JavaScript JS frameworks can hide performance traps allows to... identify reasons for slow page load find performance hotspots in JavaScript
  • 12. JIRA and dynaTrace install a VM with Windows and target IE Version install dynaTrace AJAX Edition login and remember-me to JIRA from IE add the URL you're testing to dynaTrace
  • 13. Profiling Result - Overview
  • 14. JavaScript Details identify hotspots script call stack script source
  • 15. Wrap-Up Use client side profiling as a starting point Tune JavaScript and page load time
  • 16. Performance Pitfalls JQLs vs HitCollector: Example from GreenHopper for a 50% gain Dangerous convenience: CSS selectors in IE
  • 17. JQL vs HitCollector For statistics, both use Lucene LuceneSearchProvider.searchCount is faster for few queries Single search with a HitCollector is faster than many JQL queries
  • 18. Why is that? Creating a JQL query does permission checking
  • 19. HitCollector JIRA offers DocumentHitCollector
  • 20. HitCollector DocumentHitCollector has to load the document from Lucene, not just count the index Custom logic is required to do the actual counting But it still beats many JQL queries
  • 21. GreenHopper 5.0 Statistics performance on the server increased by 50%
  • 22. CSS Selector in IE IE has no native way to find nodes by class Attribute selectors or selectors with wildcards have to walk the DOM tree Prototype's extension mechanism is slow on IE
  • 23. Bad examples $('.myCssClass') $('div[class*=myCssClass]') $('div#myId')
  • 24. Good examples $('#myId div.myCssClass') $('#myId div[class*=myCssClass]') $('#myId')
  • 25. Prototype CSS Selector in IE Timeline view in the profiler slow method
  • 26. Prototype CSS Selector calls prototype element extension prototype CSS selector
  • 27. CSS Selector after tuning Modified Prototype with switch for element extension hotspot is gone
  • 28. There's a lot more Cache data that's expensive to fetch Use Web Resources, they give you no cache expiry (no more 304's) batched mode (less requests)
  • 29. Further Reading http://confluence.atlassian.com/display/ATL/Alex+Hennecke JIRA Web Resource http://confluence.atlassian.com/display/JIRA/Web+Resource+Plugin+Module jQuery Performance Rules http://www.artzstudio.com/2009/04/jquery-performance-rules/ dynaTrace Application Performance Almanac http://blog.dynatrace.com/2010/01/12/dynatrace-application-performance-almanach-2010/ Kirk Pepperdine http://www.javaperformancetuning.com/
  • 30. Performance is King alex@atlassian.com