Your SlideShare is downloading. ×
  • Like
  • Save
Die Top Performance Probleme in Mordernen Anwendungen
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Die Top Performance Probleme in Mordernen Anwendungen

  • 224 views
Published

Performanceprobleme treten meistens dann auf wenn man nicht damit rechnet, und es kostet viel Zeit und Geld um diese Probleme in den Griff zu bekommen. Viele der Probleme die man in modernen …

Performanceprobleme treten meistens dann auf wenn man nicht damit rechnet, und es kostet viel Zeit und Geld um diese Probleme in den Griff zu bekommen. Viele der Probleme die man in modernen Anwendungen findet könnten aber von vorne herein vermieden werden wenn man nur den nötigen Einblick in die verwendeten Technologien, Applikationsservern bzw. Frameworks hätte. Unnötig viele Datenbankabfragen, performanceintensive Serialisierung bei Remoting-Aufrufen sowie Memory Leaks sind jene Probleme die in diesem Vortrag detaillierter behandelt werden

Presented by Andi Grabner, Technology Strategist, dynaTrace-Compuware Center of Excellence, at the SBB IT Dev Day, December 2010

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

Views

Total Views
224
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
0
Comments
0
Likes
0

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. SBB IT Dev DayTop Performance Probleme in modernen Anwendungen
  • 2. Performance
  • 3. Oder? Problem?
  • 4. Die Auswirkungen im Test Unmittelbar Langfristig
  • 5. Wir starten im Web
  • 6. Anatomy of Web 1.0 Datavolume Application Logic Latency (90% of Time in JavaScript Server) DOM NetworkRendering AJAX/XHR Browser Calls Server Layouting Caching Application Logic spread between Browser & Server (40% of Time in Browser, 60% of Time in Server)
  • 7. #1: Überladene Webseiten
  • 8. #2: Nicht optimiert für IE
  • 9. #3: Caching und CDNs Serverside Server providing Data Cache Caching Information Cache per Client Server Proxy Cache (CDN) Clients for Many Clients Konfigurationsprobleme
  • 10. #4: Langsamer Externer Inhalt
  • 11. #5: Connection Handling Konfigurationsprobleme
  • 12. #6: Missbrauch von AJAX
  • 13. Mehr zum Thema Web http://blog.dynatrace.com/2010/08/25/top-10-client-side-performance- problems-in-web-2-0/
  • 14. Was ist am Server los?
  • 15. Serverseitige Web Anwendung Netzwerk Server Daten- bank 1 . . . Servlet n Threads Pools & CPU Network . Ressourcen . DB Conn. 1 . n
  • 16. #1: Datenbankzugriffe Application select ... where id= 1 select ... where id= 1 select ... where id= 100 Database N+1 Query/Too many SQLs
  • 17. #1: Datenbankzugriffe Application select ... from master select ... from detail select ... from detail select ... from detail Database Application select ... from master, detail where .. Database Lazy vs. Eager Loading
  • 18. #1: Datenbankzugriffe Application Connection getConnection() Connection locked closeConnection() Application Connection getConnection() Code requiring DB access Connection locked closeConnection() Code NOT requiring DB access Unnecessary Resource Usage
  • 19. #1: Datenbankzugriffe Loading too much data
  • 20. #2: Connection Pools Application Connection Pool Database •Connection Pools are shared resources •Scaling depends on actual •Wrong scaling may lead to volatile respone times
  • 21. Einfluss auf Durchsatz & Zeit 1 2 3 (1) 1 DB connection (2) 10 DB connections (3) 1 DB connection 200 ms less connection usage Increased time to connect while DB and app stays stable
  • 22. #3: OR-Mapper
  • 23. Die Konfiguration entscheidet Viele Datenbankqueries Ein Aufruf Mittels JOIN
  • 24. #4: Verteilte Kommunikation
  • 25. Der Teufel liegt im Detail
  • 26. Viele Komponenten spielen zusammen
  • 27. #5: Synchronisation
  • 28. Verhalten unter Last Antwortzeit Schlecht CPU Gut
  • 29. Synchronisationsanalyse
  • 30. #6: Memory and GC
  • 31. Memory Leaks
  • 32. Basisüberwachung
  • 33. Hotspotanalyse
  • 34. String Analyse
  • 35. Die Rolle des Garbage Collectors
  • 36. „Stop the World“-GC Strategien Normal Parallel Concurrent
  • 37. #7: Ressource Verschwendung
  • 38. #8: Versteckte Fehler
  • 39. Zusammengefasst Synchronization Heap Sizing Caching GC Tuning
  • 40. andreas.grabner@dynatrace.com Mail blog.dynatrace.com Blog grabnerandi Twitter
  • 41. Download the latest Application Performance almanac:Web | Cloud | DevOps | Mobile | Automation | Tuningwww.dynatrace.com/almanac