Improving Web Site Performance and Scalability While Saving Money Robert Boedigheimer ∙ Web Application

Slides:



Advertisements
Similar presentations
Optimizing Websites with YSlow Tom Lianza Co-Founder Wishlisting.com Tom Lianza Co-Founder Wishlisting.com.
Advertisements

Hotmails Performance Tuning Best Practices Aladdin A. Nassar Hotmails Performance Champion Microsoft.
Web Performance Meetup 1 Web Performance 101 Jeremy
Web Performance Meetup 1 Web Performance Toolbelt Jeremy
Stevesouders.com/docs/velocity-wpo pptx Disclaimer: This content does not necessarily reflect the opinions of my employer.
Enabling Secure Internet Access with ISA Server
Go Live! Launching your MOSS Publishing site DEV435 Spencer Harbar.
Web Site Performance What makes web sites slow? Back end Front end Tools for measuring performance Firebug / YSlow Visual Studio Test Edition W3.org html.
©2013 AKAMAI | FASTER FORWARD TM It's all about Performance Measured and Perceived Performance on Desktop and Mobile Devices San Mateo Meetup, July 2013.
Things Every ASP.NET Developer Should Know
CHAPTER 15 WEBPAGE OPTIMIZATION. LEARNING OBJECTIVES How to test your web-page performance How browser and server interactions impact performance What.
TCP/IP Protocol Suite 1 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter 22 World Wide Web and HTTP.
Client side performance in Web based Banking applications Divakar Prabhu Infosys Limited (NASDAQ: INFY)
1 Configuring Internet- related services (April 22, 2015) © Abdou Illia, Spring 2015.
Analysis and Performance Information Systems 337 Prof. Harry Plantinga.
Implementing ISA Server Caching. Caching Overview ISA Server supports caching as a way to improve the speed of retrieving information from the Internet.
Performance Comparison of Congested HTTP/2 Links Brian Card, CS /7/
Microsoft ® Official Course Developing Optimized Internet Sites Microsoft SharePoint 2013 SharePoint Practice.
1 Web Content Delivery Reading: Section and COS 461: Computer Networks Spring 2007 (MW 1:30-2:50 in Friend 004) Ioannis Avramopoulos Instructor:
High Performance Websites (Based on Steve Souder’s lecture) By Bhoomi Patel.
Application Layer  We will learn about protocols by examining popular application-level protocols  HTTP  FTP  SMTP / POP3 / IMAP  Focus on client-server.
Putting the Network to Work
Application Layer. Domain Name System Domain Name System (DNS) Problem – Want to go to but don’t know the IP addresswww.google.com Solution.
Mark Phillip markphillip.com 200s, 304s, Expires Headers, HTTP Compression, And You.
Performance, SEO, Accessibility Ivan Zhekov Telerik Corporation
22-Aug-15 | 1 |1 | Help! I need more servers! What do I do? Scaling a PHP application.
DNN Performance & Scalability Planning, Evaluating & Improving : Part 2.
Building Highly Scalable Websites Karol Jarkovsky Sr. Solution Architect
CP476 Internet Computing Lecture 5 : HTTP, WWW and URL 1 Lecture 5. WWW, HTTP and URL Objective: to review the concepts of WWW to understand how HTTP works.
JavaScript, Fourth Edition Chapter 12 Updating Web Pages with AJAX.
5 Chapter Five Web Servers. 5 Chapter Objectives Learn about the Microsoft Personal Web Server Software Learn how to improve Web site performance Learn.
Ideas to Improve SharePoint Usage 4. What are these 4 Ideas? 1. 7 Steps to check SharePoint Health 2. Avoid common Deployment Mistakes 3. Analyze SharePoint.
Cross Site Integration “mashups” cross site scripting.
Web Performance Optimization Boban Stojanovski (Senior Front End Developer at Solaborate) Think Fast by default.
Web Design (1) Terminology. Coding ‘languages’ (1) HTML - Hypertext Markup Language - describes the content of a web page CSS - Cascading Style Sheets.
1 Session 1: Introduction to PHP & MySQL iNET Academy Open Source Web Development.
PERFORMANCE ENHANCEMENT IN ASP.NET By Hassan Tariq Session #1.
Putting Performance Best Practices Together to Create the Perfect SPA Chris Love2Dev.com.
2007cs Servers on the Web. The World-Wide Web 2007 cs CSS JS HTML Server Browser JS CSS HTML Transfer of resources using HTTP.
Web Design and Development. World Wide Web  World Wide Web (WWW or W3), collection of globally distributed text and multimedia documents and files 
Internet Applications (Cont’d) Basic Internet Applications – World Wide Web (WWW) Browser Architecture Static Documents Dynamic Documents Active Documents.
Restricted © Siemens AG All rights reserved A Developer’s Insights Into Performance Optimizations for Mobile Web Apps CT DC AA EM LP2 | June 2015.
ASP-2-1 SERVER AND CLIENT SIDE SCRITPING Colorado Technical University IT420 Tim Peterson.
LESSON 15 – UNIT 0 ADAPTING YOUR WEB SITE FOR MOBILE DEVICES.
Apache Web Server Architecture Chaitanya Kulkarni MSCS rd April /23/20081Apache Web Server Architecture.
Bundles, Minification Andres Käver, IT Kolledž
Random Logic l Forum.NET l ASP.NET performance Forum.NET 5 th Meeting ● March 2006 By Yaniv Sharon.
Session 11: Cookies, Sessions ans Security iNET Academy Open Source Web Development.
1 Chapter 22 World Wide Web (HTTP) Chapter 22 World Wide Web (HTTP) Mi-Jung Choi Dept. of Computer Science and Engineering
ASP.NET and Visual Studio 2012 Robert Boedigheimer.
TCP/IP Protocol Suite 1 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter 22 World Wide Web and HTTP.
Week-10 (Lecture-1) Web Building STEPS OF BUILDING: create web pages using HTML add a consistent style using CSS add computer code using JavaScript add.
Site Speed: The Ultimate UX Feature… for SEO. A case study on how to increase search engine crawling and online conversion Jonathon Colman In-House SEO.
MICROSOFT AJAX CDN (CONTENT DELIVERY NETWORK) Make Your ASP.NET site faster to retrieve.
Fiddler and Your Website Robert Boedigheimer. About Me Web developer since 1995 Columnist for aspalliance.com Pluralsight Author 3 rd Degree Black Belt,
Enhance Your Page Load Speed And Improve Traffic.
Technology for Mobile Network Operators Business Case: Improve Overall Service Quality and Customer Experience While Dramatically Lowering Carrier Costs.
Distributed Control and Measurement via the Internet
Business Case: Improve Overall Service Quality and Customer Experience
Ad-blocker circumvention System
ASP.NET Core Tag Helpers
Time is the enemy: Ten Core Lessons for Achieving Peak
Debugging Your Website with Fiddler and Chrome Developer Tools
Web Caching? Web Caching:.
Utilization of Azure CDN for the large file distribution
Internet Applications
Hints and tips for faster web apps
Configuring Internet-related services

Yale Digital Conference 2019
Presentation transcript:

Improving Web Site Performance and Scalability While Saving Money Robert Boedigheimer ∙ Web Application

About Me −Web developer since 1995 −MCPD Web, Charter Member −Columnist for aspalliance.com −Wrox Author −3 rd Degree Black Belt, Tae Kwon Do −ASP.NET MVP

Performance Rules −“Performance is like air, no one cares about it until there isn’t any” - Richard Campbell −For most web sites, only 10-20% of response time is waiting for the HTML document to be generated and downloaded −Not optimizing code! −Make fewer HTTP requests −Send as little as possible −Send it as infrequently as possible

Saving and Making Money −Less bandwidth −Less servers −Increased sales and traffic ( −“Every 100 ms increase in load time of Amazon.com decreased sales by 1%” −“When the home page of Google Maps was reduced from 100KB to 70-80KB, traffic went up 10% in the first week, and an additional 25% in the following three weeks” −Google and others using performance to determine ranking

HTTP −Hypertext Transfer Protocol −Protocol defined in RFC 2068 (Http 1.1), January 1997 −Request/response paradigm −Header and body −

Fiddler −Tracing tool specifically for HTTP −Shows complete request and response (not packets) −Can save archive of session −Can be used on own machine (ipv4.fiddler, ipv6.fiddler) −Transfer Timeline −

Fiddler (Transfer Timeline)

Microsoft Network Monitor −General network tracing tool for many protocols −Hooks into network adapters −See network frames at multiple levels −Apply filters for specific protocols, IP addresses, etc −

Measure −IIS log files −Time taken −logParser −3 rd Party Services −Benchmark against others −Servers around US and world −Availability and response times every X minutes −Keynote, Gomez, WebSitePulse, AlertSite

HTTP Compression −Server evaluates the “Accept-Encoding” header for request, compresses resulting response −Implemented in February 2003 when about 3% of Fortune 1000 web sites utilized −Used 53% less bandwidth, ~25% faster Keynote measurements −Now use IIS Compression (free)

HTTP Compression (cont) −IIS 7 −Can control when to stop using if CPU usage is too high −Minimum default file size is 256K −Only static compression is on by default −Detailed article about enabling IIS 6 compression at

Content Expirations −Client asks “if-modified-since” −Small content files it is just as expensive to see if modified as to receive content −Leverage user’s browser cache −Setup expiration times for content folders −Avoid requests for files that seldom change (.js,.css, images, etc) −Rename the file if need to override browser caching

Content Expirations (cont)

CSS and JavaScript External −(Almost) always put CSS and JavaScript in external files −Reduces page size(s) −Allows reuse −Able to use expirations

ETags −Used for cache validation −IIS sends the ETag header in response for static files −hash:changeNumber −IIS 6 −changeNumber – specific to server −Setup a custom response header “ETag” with no value −IIS 7 −changeNumber - 0 by default −Completely remove header with HttpModule

Minification and Consolidation −Minimize CSS and JavaScript files −Remove whitespace, comments, excessive semicolons, etc −Microsoft Ajax Minifier (Codeplex.com) −Command line,.dll, and build tasks −MSBuild −Tasks −Extension Pack (version #) −jQuery js minimized 55.5% −Test after minimize! −

CSS Sprites −Combine small images into a single image −Use CSS to “index” into the larger image −Often 70-95% of time taken for a user is time requesting components (images,.css,.js) −Reduce the number of requests −

Images −JPEG (photos), PNG/GIF (rest) −JPEG compression −Tradeoff size vs. quality, often cut size by 50% without any impact −Image optimizers −Jpegtran – removes unnecessary metadata, lossless −Pngcrush – PNG optimizer −Smush.it,

Favicon.ico Caching −By default, most browsers automatically look for this file in root folder of site (use for favorites, address bar, etc) −Use to point to a specific image −Setup to use an image with expirations

Content Distribution Network −Akamai, Limelight, Internap, Amazon −Global network of servers −Geographically closer to users −Offloads work for your servers −Typically used for static files (images, CSS, JavaScript, etc) −jQuery (jQuery.com, Microsoft, Google) −Host jquery library files for free

Caching −Data caching (Cache), cut 50% of our SQL queries which was 72,080,000 less queries each month! −Substitution −Scalability, Performance, and Reliability −

Server Side Viewstate −Default hidden client field for viewstate can become very large on pages −Can specify to store in session on server to avoid downloading to the client −Create a new Page Adapter to specify use of Session rather than client side hidden fields −Two PageStatePersister derived classes − HiddenFieldStatePersister (default) − SessionPageStatePersister −Create.browser file in App_Browsers and configure new class −

Ajax −May be times when only need to update a portion of a page −jQuery −.load( ) – call server and return HTML fragment −.ajax( ) – call and get various types of data

Tools −Performance analysis tools −Review a web page for how well it implements various performance techniques like compression, expirations, etc −YSlow −Google PageSpeed −Charles proxy – can use to simulate various connection speeds

Other Ideas −Pre-fetch −Remove unused response headers from IIS −Host static pages on cookieless domains −Image width/height (faster rendering) −Keep Alives −Serve images from multiple domains (more parallelism) −Stylesheets at top of pages −Scripts at bottom of pages

Resources −“High Performance Web Sites” by Steve Souders −“Website Optimization” by Andrew King −

Thank You Robert Boedigheimer ∙ Web Application