Speed = $$$

   Peter Gfader
Abstract
Why is Performance important?
    Applications in general
    Webapplicaitons
What can we devs do?
Tips: How to optimize
    Web applications
    Silverlight
    Backend
    …
Regression
    How to maintain performance over time
    How to get faster over time
Discussion: What tips do you have in your toolbox?
    Fill wiki
Speed matters?
#1 Trust
#2 Money
“For Amazon every 100
 ms increase in load times
 decreased sales with 1%”


http://glinden.blogspot.com/2006/11/marissa-mayer-at-web-20.html
Google
   “400 ms delay caused a
  0.59% decrease in search
     requests per user”


http://velocityconf.com/velocity2009/public/schedule/detail/8523
Speed matters!


    Lucky
    day
The web
HTML
• HyperText Markup Language
• Describes a web page
                      <html>
                        <head>
                          <title>Hello HTML</title>
                        </head>
                        <body>
                          <p>Hello World!</p>
                        </body>
                      </html>
HTTP
• Hypertext Transfer Protocol
• Request – Response

                   GET /index.html HTTP/1.1 Host:
                   www.example.com


                   HTTP/1.1 200 OK
                    Date: Mon, 23 May 2005 22:38:34 GMT
                    Server: Apache/1.3.3.7 (Unix) (Red-Hat/Linux)
                    Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT
                    Content-Length: 438
                    Content-Type: text/html; charset=UTF-8
How a web page is shown

    Your                    Hosting
    Computer                Computer

                    The
               Internet
                 Internet

    Client                  Server
Request / Response


            Request
         www.zuehlke.com
                  The
               Internet
            Response
Client         HTML        Serve
                           r
XMLHttpRequest
    AJAX


            The
         Internet

Client              Serve
                    r
Silverlight / Flash



               The
            Internet

                       Serve
Client                 r
“Building a webapp is easy!

   You just gotta know HTML, CSS,
   JavaScript, C#, Razor, SQL, DDL,
               and Regex

            Oh, plus people skills”

https://twitter.com/#!/secretGeek/status/83297694449
287168
Can we be too
    fast?
Video player


Technical
Perceived Speed
Mean RT is about 160 ms: auditory stimulus
Mean RT is about 190 ms: visual stimulus



http://en.wikipedia.org/wiki/Reaction_time
What can we
           do?



http://www.flickr.com/photos/rockersdelight/6161622855/
You can't improve what
  you don’t measure
Measure
Perfmon
Perfmon Counters
Perfmon Customization
PageSpeed
YSlow
LoadStorm
Tip
Measure from day 1
Measure and establish a
      baseline
Improve
1/7   Minify / Uglify
2/7   Compress
3/7   Bundle / Combine
4/7   Image Sprites
5/7   Server side
Server side
6/7   Server side
      Caching
7/7   CDN
Silverlight?
Measure again
Developers like to change
        things
Developers need to
  change things
Before and After
Tools
Tools
• Firebug                         http://getfirebug.com/

• Yslow                           http://yslow.org/

• Pagespeed
      https://developers.google.com/speed/pagespeed/

• Google Analytics                http://www.google.com/analytics/



• Fiddler                         http://www.fiddler2.com/
• Wireshark                       http://www.wireshark.org/


• CPorts                          http://www.nirsoft.net/utils/cports.html

• Firebug for SL                  http://firstfloorsoftware.com/silverlightspy
Tools
• Jetbrains dotTrace
  http://www.jetbrains.com/profiler/index.html



• ANTS profiler
  http://www.red-
  gate.com/products/ants_performance_profiler/index.htm
Perfmon Counters
• General Windows Server
  http://adminfoo.net/2007/04/windows-perfmon-top-ten-counters.html

  http://technet.microsoft.com/en-us/library/cc768048.aspx



• SQL Server
  http://www.databasejournal.com/features/mssql/article.php/3932406/Top-10-SQL-
  Server-Counters-for-Monitoring-SQL-Server-Performance.htm
Tools
• Web Standards Update for VS2010
  http://visualstudiogallery.msdn.microsoft.com/a15c3ce9-f58f-42b7-8668-53f6cdc2cd83


• Cassette
  http://getcassette.net/


• Sprite and Image Optimization
  http://aspnet.codeplex.com/releases/view/65787


• Image Optimizer
  http://visualstudiogallery.msdn.microsoft.com/a56eddd3-d79b-48ac-8c8f-2db06ade77c3


• CSSCop
  http://visualstudiogallery.msdn.microsoft.com/a921b98e-9430-4be2-bf53-1169e12bdb50
References
• 8 Performance tips before going live
  http://blog.gfader.com/2011/07/website-check-list-part-2-aspnet-
  8.html

• Performance interview with LoadStorm + more Tools
  http://blog.gfader.com/2010/06/performance-interview-with-
  loadstorm.html
References
• DNR podcast on YSlow
  http://www.dotnetrocks.com/default.aspx?showNum=390

• Founder of YSlow (Yahoo)
  http://www.stevesouders.com/blog/
Q?
Yours?
Fill IKM?
Peter Gfader
blog.gfader.com



Thanks!


  Exhausted but happy!

Speed = $$$

  • 1.
    Speed = $$$ Peter Gfader
  • 2.
    Abstract Why is Performanceimportant? Applications in general Webapplicaitons What can we devs do? Tips: How to optimize Web applications Silverlight Backend … Regression How to maintain performance over time How to get faster over time Discussion: What tips do you have in your toolbox? Fill wiki
  • 9.
  • 10.
  • 11.
  • 14.
    “For Amazon every100 ms increase in load times decreased sales with 1%” http://glinden.blogspot.com/2006/11/marissa-mayer-at-web-20.html
  • 15.
    Google “400 ms delay caused a 0.59% decrease in search requests per user” http://velocityconf.com/velocity2009/public/schedule/detail/8523
  • 16.
    Speed matters! Lucky day
  • 17.
  • 18.
    HTML • HyperText MarkupLanguage • Describes a web page <html> <head> <title>Hello HTML</title> </head> <body> <p>Hello World!</p> </body> </html>
  • 19.
    HTTP • Hypertext TransferProtocol • Request – Response GET /index.html HTTP/1.1 Host: www.example.com HTTP/1.1 200 OK Date: Mon, 23 May 2005 22:38:34 GMT Server: Apache/1.3.3.7 (Unix) (Red-Hat/Linux) Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT Content-Length: 438 Content-Type: text/html; charset=UTF-8
  • 20.
    How a webpage is shown Your Hosting Computer Computer The Internet Internet Client Server
  • 21.
    Request / Response Request www.zuehlke.com The Internet Response Client HTML Serve r
  • 22.
    XMLHttpRequest AJAX The Internet Client Serve r
  • 23.
    Silverlight / Flash The Internet Serve Client r
  • 24.
    “Building a webappis easy! You just gotta know HTML, CSS, JavaScript, C#, Razor, SQL, DDL, and Regex Oh, plus people skills” https://twitter.com/#!/secretGeek/status/83297694449 287168
  • 25.
    Can we betoo fast?
  • 26.
  • 27.
    Perceived Speed Mean RTis about 160 ms: auditory stimulus Mean RT is about 190 ms: visual stimulus http://en.wikipedia.org/wiki/Reaction_time
  • 28.
    What can we do? http://www.flickr.com/photos/rockersdelight/6161622855/
  • 29.
    You can't improvewhat you don’t measure
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 38.
  • 39.
  • 40.
  • 42.
  • 43.
    1/7 Minify / Uglify
  • 44.
    2/7 Compress
  • 45.
    3/7 Bundle / Combine
  • 46.
    4/7 Image Sprites
  • 47.
    5/7 Server side
  • 48.
  • 49.
    6/7 Server side Caching
  • 50.
    7/7 CDN
  • 51.
  • 52.
  • 53.
    Developers like tochange things
  • 54.
    Developers need to change things
  • 55.
  • 56.
  • 57.
    Tools • Firebug http://getfirebug.com/ • Yslow http://yslow.org/ • Pagespeed https://developers.google.com/speed/pagespeed/ • Google Analytics http://www.google.com/analytics/ • Fiddler http://www.fiddler2.com/ • Wireshark http://www.wireshark.org/ • CPorts http://www.nirsoft.net/utils/cports.html • Firebug for SL http://firstfloorsoftware.com/silverlightspy
  • 58.
    Tools • Jetbrains dotTrace http://www.jetbrains.com/profiler/index.html • ANTS profiler http://www.red- gate.com/products/ants_performance_profiler/index.htm
  • 59.
    Perfmon Counters • GeneralWindows Server http://adminfoo.net/2007/04/windows-perfmon-top-ten-counters.html http://technet.microsoft.com/en-us/library/cc768048.aspx • SQL Server http://www.databasejournal.com/features/mssql/article.php/3932406/Top-10-SQL- Server-Counters-for-Monitoring-SQL-Server-Performance.htm
  • 60.
    Tools • Web StandardsUpdate for VS2010 http://visualstudiogallery.msdn.microsoft.com/a15c3ce9-f58f-42b7-8668-53f6cdc2cd83 • Cassette http://getcassette.net/ • Sprite and Image Optimization http://aspnet.codeplex.com/releases/view/65787 • Image Optimizer http://visualstudiogallery.msdn.microsoft.com/a56eddd3-d79b-48ac-8c8f-2db06ade77c3 • CSSCop http://visualstudiogallery.msdn.microsoft.com/a921b98e-9430-4be2-bf53-1169e12bdb50
  • 61.
    References • 8 Performancetips before going live http://blog.gfader.com/2011/07/website-check-list-part-2-aspnet- 8.html • Performance interview with LoadStorm + more Tools http://blog.gfader.com/2010/06/performance-interview-with- loadstorm.html
  • 62.
    References • DNR podcaston YSlow http://www.dotnetrocks.com/default.aspx?showNum=390 • Founder of YSlow (Yahoo) http://www.stevesouders.com/blog/
  • 63.
  • 64.
  • 65.
  • 66.

Editor's Notes

  • #2 Wieso ist Performance wichtig?Applikation generellWeb applikationenWas können wir tun?Tips: HowtooptimizeWeb applicationsSilverlightBackend…RegressionHowtomaintainperformanceover timeHowtogetfasterover timeDiscussion: Whattips do youhave in yourtoolbox?Fill IKM wiki
  • #4 Click toaddnotesPeter Gfader talksabout web performance
  • #5 Click toaddnotesPeter Gfader talksabout web performance
  • #6 Click toaddnotesPeter Gfader talksabout web performance
  • #7 Click toaddnotesPeter Gfader talksabout web performance
  • #8 Click toaddnotesPeter Gfader talksabout web performance
  • #9 Click toaddnotesPeter Gfader talksabout web performance
  • #10 Performance = Zeitverhalten von SoftwareSpeed = Ausführungsgeschwindigkeit
  • #15 Click toaddnotesPeter Gfader talksabout web performance
  • #21 Show in Firebug  google.com
  • #22 Show in FireBug
  • #23 Show in FireBug
  • #24 Show in FireBug
  • #33 d:\\DataPeterGfader\\ToolBox\\PerfMon\\perfmon-counters-peterG.msc
  • #34 d:\\DataPeterGfader\\ToolBox\\PerfMon\\perfmon-counters-peterG.msc
  • #44 Show zuehlke.comShow google.com
  • #45 Show zuehlke.comShow google.com
  • #46 Show CopyCatlocalhost VS online
  • #47 YouTube
  • #49 POKwebseiteSelect N+1 problem sollte eigentlich SELECT 1+N heissenProdukte
  • #54 We are continuously working on that project. We implement new features, we fix bugs we improve certain bits, or at least we think we improve them  
  • #55 reports