Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
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
Upcoming SlideShare
Loading in …5
×

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

470 views

Published on

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.

Published in: Software
  • Be the first to comment

  • Be the first to like this

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

×