Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.
PERFORMANCE IN
EPISERVER
SOLUTIONS
Tommi Raunio
Software Architect
Twitter: @TommiRaunio
ME?
› Tommi Raunio
› Software architect
› Working with .NET since 2006
› In Solita since 02/2014
› Twitter: @TommiRaunio
AGENDA
1. What’s performance and why talk about it
2. Constructing performing Episerver websites
WHAT & WHY
PERFORMANCE?
› Two types
› Vertical
• Load speed
• The speed which invidual user experiences
› Horizontal
• Number of requ...
PERFORMANCE MATTERS!
› Performance equals money
• More efficent software equals less hosting costs
• E-commerce sites star...
HOW?
THREE SECRET INGREDIENTS TO
PERFORMANCE
1. Design & Architecture
2. Implement
3. Measure
PART 1. ARCHITECTURE
DISTANCE MATTERS
Episerver DB /
SQL Server
Episerver front server / IISExternal
systems
Query cache
Browser caching
Conten...
CUSTOM CACHING
› Caching is a shortcut to data
› Use caching as a shortcut for long running operations
› Do cache (for exa...
WHEN CACHING…
› Use CacheManager
› Invalidate 
› Remember the logged in user. Don’t cache content when logged in
› Don’t ...
ARCHITECT FOR READS
Write optimized
database
Episerver front server / IISExternal
systems
Read optimized
database
Redis / ...
PART 2. IMPLEMENT
IMPLEMENTATION & MISC.
› Keep your datasets to minimum
• When reading from DB
• When sending data to browser
› Avoid unnec...
PART 3. MEASURE
PREFIX
› Light weight performance analyzer
› Good for general performance analysis
› Result filtering is done for you
• Tr...
JMETER
› Performance testing tool
› Good for generating load
› Good for stress testing your site (in dev)
› Combine with d...
DOTTRACE
› .NET code profiler
› By Jetbrains
› My personal go-to tool regarding performance problems
› Very detailed analy...
WEB ANALYSIS
› PageSpeed Insights
› Webpagetest.org
› Both tools (sites) do a really good
analysis from browser level
DOTMEMORY
› .NET memory profiler
› Silver bullet for memory leaks
PERFORMANCE MEASUREMENT
OVER TIME
› Displays page performance over time
• Shows possible drops in performance after change...
QUESTIONS?
Twitter @SolitaOy
www.solita.fi
THANK YOU!
TOMMI RAUNIO
tommi.raunio@solita.fi
Twitter @TommiRaunio
Episerver dev meetup: Performance in Episerver Solutions, Tommi Raunio, Solita
Próxima SlideShare
Cargando en…5
×

Episerver dev meetup: Performance in Episerver Solutions, Tommi Raunio, Solita

Websites that perform are a passion for many of us in the Web developer community. During this presentation Tommi goes through tips & tricks & tools that help Solita achieve this goal.

  • Inicia sesión para ver los comentarios

  • Sé el primero en recomendar esto

Episerver dev meetup: Performance in Episerver Solutions, Tommi Raunio, Solita

  1. 1. PERFORMANCE IN EPISERVER SOLUTIONS Tommi Raunio Software Architect Twitter: @TommiRaunio
  2. 2. ME? › Tommi Raunio › Software architect › Working with .NET since 2006 › In Solita since 02/2014 › Twitter: @TommiRaunio
  3. 3. AGENDA 1. What’s performance and why talk about it 2. Constructing performing Episerver websites
  4. 4. WHAT & WHY
  5. 5. PERFORMANCE? › Two types › Vertical • Load speed • The speed which invidual user experiences › Horizontal • Number of requests the site can handle • Makes the site absorb more stuff
  6. 6. PERFORMANCE MATTERS! › Performance equals money • More efficent software equals less hosting costs • E-commerce sites start losing purchases if the site doesn’t perform › Developer satisfaction
  7. 7. HOW?
  8. 8. THREE SECRET INGREDIENTS TO PERFORMANCE 1. Design & Architecture 2. Implement 3. Measure
  9. 9. PART 1. ARCHITECTURE
  10. 10. DISTANCE MATTERS Episerver DB / SQL Server Episerver front server / IISExternal systems Query cache Browser caching ContentOutputCache Object (Contentrepository)Cache File caching Custom made caching
  11. 11. CUSTOM CACHING › Caching is a shortcut to data › Use caching as a shortcut for long running operations › Do cache (for example) • Long JSON strings (Web API / Razor) • Results from external systems › Don’t cache • ContentRepository Get / GetChildren
  12. 12. WHEN CACHING… › Use CacheManager › Invalidate  › Remember the logged in user. Don’t cache content when logged in › Don’t over-engineer
  13. 13. ARCHITECT FOR READS Write optimized database Episerver front server / IISExternal systems Read optimized database Redis / Episerver Find / ElasticsearchEpiserver database SQL Server Sync
  14. 14. PART 2. IMPLEMENT
  15. 15. IMPLEMENTATION & MISC. › Keep your datasets to minimum • When reading from DB • When sending data to browser › Avoid unnecessary reads from database › Watch that lazy Ienumerable › Construct a device aware image system › Minimize the number of JS libraries › Bundling & minification
  16. 16. PART 3. MEASURE
  17. 17. PREFIX › Light weight performance analyzer › Good for general performance analysis › Result filtering is done for you • Tracks only the most important methods › During development as a second screen › Free! 
  18. 18. JMETER › Performance testing tool › Good for generating load › Good for stress testing your site (in dev) › Combine with dotTrace to reveal code ”hot spots”
  19. 19. DOTTRACE › .NET code profiler › By Jetbrains › My personal go-to tool regarding performance problems › Very detailed analysis on where the time is spent in code
  20. 20. WEB ANALYSIS › PageSpeed Insights › Webpagetest.org › Both tools (sites) do a really good analysis from browser level
  21. 21. DOTMEMORY › .NET memory profiler › Silver bullet for memory leaks
  22. 22. PERFORMANCE MEASUREMENT OVER TIME › Displays page performance over time • Shows possible drops in performance after changes › Custom tool based on Jenkins + MSTest + Elasticsearch + Kibana
  23. 23. QUESTIONS?
  24. 24. Twitter @SolitaOy www.solita.fi THANK YOU! TOMMI RAUNIO tommi.raunio@solita.fi Twitter @TommiRaunio

×