background preloader

Web performance

Facebook Twitter

Study. In the late 90's I realized the best way for me to learn something was to research how it works, write a tutorial for myself that covers the main concepts, and then post it online for me to reference when needed.

Study

This portion of the site is an archive of that content. Popular Information Security Not all SYN packets are created equal A look at how SYN packets created via raw sockets differ from those created with a call to the connect() syscall, and how this effects portscanning. A Firewall Primer A short firewall primer aimed at explaining the differences between different types of firewall technologies. An nmap Primer A quick guide to some essential functionality within nmap. Development Networking Subnetting An alternative approach to subnetting..

ICMP Basics Most of what most need to know about ICMP.. Unix/Linux A Varnish Primer Has nothing to do with painting. Let's make the web faster - Google Code. Author: Lindsey Simon, UX Developer Recommended knowledge: Basic HTML, basic Javascript, working knowledge of CSS Reflow is the name of the web browser process for re-calculating the positions and geometries of elements in the document, for the purpose of re-rendering part or all of the document.

Let's make the web faster - Google Code

Because reflow is a user-blocking operation in the browser, it is useful for developers to understand how to improve reflow time and also to understand the effects of various document properties (DOM depth, CSS rule efficiency, different types of style changes) on reflow time. Sometimes reflowing a single element in the document may require reflowing its parent elements and also any elements which follow it. There are a great variety of user actions and possible DHTML changes that can trigger a reflow. From the table above it's clear that not all changes to the style in JavaScript cause a reflow in all browsers, and that the time it takes to reflow varies. Guidelines Reduce unnecessary DOM depth. Nginx. Response Time Limits. Optimize Parallel Downloads to Minimize Object Overhead. Summary: With the average web page growing past 50 external objects, object overhead now dominates most web page delays.

Optimize Parallel Downloads to Minimize Object Overhead

Increasing parallel downloads by using multiple hostnames can realize up to a 40% improvement in web page latency. With the average web page made up of more than 50 objects (Krishnamurthy and Wills 2006), object overhead now dominates the latency of most web pages (Yuan 2005). Following the recommendation of the HTTP 1.1 specification, browsers typically default to two simultaneous threads per hostname. As the number of HTTP requests required by a web page increase from 3 to 23, the actual download time of objects as a percentage of total page download time drops from 50% to only 14% (see Figure 1). Figure 1: Object Retrieval Latency versus Number of Objects (used with permission) Parallel Download Default Throttles Browsers Serve your objects from multiple serversCreate multiple subdomains to serve from multiple hostnames Using Multiple Servers domain.com/i/ Conclusion. Http - Implementing parallel static content download in the browser. Best Practices for Speeding Up Your Web Site.

The Exceptional Performance team has identified a number of best practices for making web pages fast.

Best Practices for Speeding Up Your Web Site

The list includes 35 best practices divided into 7 categories. Minimize HTTP Requests tag: content 80% of the end-user response time is spent on the front-end. Most of this time is tied up in downloading all the components in the page: images, stylesheets, scripts, Flash, etc. Minimize round-trip times. Round-trip time (RTT) is the time it takes for a client to send a request and the server to send a response over the network, not including the time required for data transfer.

Minimize round-trip times

That is, it includes the back-and-forth time on the wire, but excludes the time to fully download the transferred bytes (and is therefore unrelated to bandwidth). For example, for a browser to initiate a first-time connection with a web server, it must incur a minimum of 3 RTTs: 1 RTT for DNS name resolution; 1 RTT for TCP connection setup; and 1 RTT for the HTTP request and first byte of the HTTP response. Many web pages require dozens of RTTs. RTTs vary from less than one millisecond on a LAN to over one second in the worst cases, e.g. a modem connection to a service hosted on a different continent from the user. For small download file sizes, such as a search results page, RTT is the major contributing factor to latency on "fast" (broadband) connections.

Minimize DNS lookups Overview Details Recommendations.