background preloader

Blogs & reviews

Facebook Twitter

Essential Web Performance Metrics — A Primer, Part 1. Essential Web Performance Metrics — Part 2. Open source performance testing tools. Allmon Description: The main goal of the project is to create a distributed generic system collecting and storing various runtime metrics collections used for continuous system performance, health, quality and availability monitoring purposes.

Open source performance testing tools

Allmon agents are designed to harvest a range of metrics values coming from many areas of monitored infrastructure (application instrumentation, JMX, HTTP health checks, SNMP). Collected data are base for quantitative and qualitative performance and availability analysis. Allmon collaborates with other analytical tools for OLAP analysis and Data Mining processing. Requirement: Platform independent Apache JMeter Apache JMeter is a 100% pure Java desktop application designed to load test functional behavior and measure performance. Solaris, Linux, Windows (98, NT, 2000). Benerator benerator is a framework for creating realistic and valid high-volume test data, used for (unit/integration/load) testing and showcase setup. Platform Independent ContiPerf linux. Graph your web performance metrics! Two of my favorite new things in sitespeed.io 3.0 are the ability to drive WebPageTest (done using Marcel Duran’s lovely WebPageTest API wrapper) and send the metrics to Graphite.

Graph your web performance metrics!

I like it a lot because it simplifies my day to day by keeping track of the performance of the sites I work with. Open Source Performance Testing Tools. Your application is fast and scalable, right?

Open Source Performance Testing Tools

Davidsonfellipe/awesome-wpo. The performace best practices rules used by Sitespeed.io. Here is a list with all the rules used when analyzing a website and calculating the score.

The performace best practices rules used by Sitespeed.io

The weight is the rule's importance, meaning the score of a specific rule, will be weighted with the importance, when calculating the overall score. Avoid slowing down the critical rendering path (criticalpath) Every request fetched inside of HEAD, will postpone the rendering of the page! Do not load javascript synchronously inside of head, load files from the same domain as the main document (to avoid DNS lookups) and inline CSS for a really fast rendering path. The scoring system for this rule, will give you minus score for synchronously loaded javascript inside of head, css files requested inside of head and minus score for every DNS lookup inside of head. 3PO. @font-face and performance. MAJOR CORRECTION: @font-face only blocks rendering in IE when there is a SCRIPT tag above the @font-face declaration.

@font-face and performance

(more info below) Last week I was reading Ajaxian (my favorite blog) and saw the post about @font-face. 5 years later: print CSS still sucks. This tweet had me revise a 5 year old experiment on how print CSS affects page loading, especially in the light of mobile browsers.

5 years later: print CSS still sucks

So I tweaked the test ever so slightly to print out timing info in the document.title and after the page is done. The test is essentially how does a slow print stylesheet affect the rendering of the page on the screen. In the experiment I have screen.css delayed with 5 seconds and print.css delayed 10 seconds. Results 5 years ago Browsers blocked rendering waiting for print.css. Results today Good guy Opera, doesn't even wait for screen.css. FF blocks rendering on the print.css.

Safari, Chrome, Mobile Safari - render after 5 seconds, meaning only after screen.css. So on the wall of shame - IE worst, FF yuck, Webkit bad, O least bad. Recommendation. Frontend SPOF. My evangelism of high performance web sites started off in the context of quality code and development best practices.

Frontend SPOF

It’s easy for a style of coding to permeate throughout a company. Developers switch teams. CSS and the critical path. Back when I was still actively into speaking at public events (way, way back, something like year and a half ago (which strangely roughly coincides with the time I joined Facebook, hmmm (hmm?

CSS and the critical path

(huh? What's with the parentheses? Sure all of them are closed at this point?)))) I remember showing this slide: The reason I'm bringing it up now is this experiment I saw today by Scott Jehl. media="nonsense" Scott added LINK elements with non-applicable media attribs, such as tv, too much min-width and pixel ratio of 6 among others: Deciphering the Critical Rendering Path. As Steve pointed out in an earlier post, window.onload is not the best metric for measuring website speed.

Deciphering the Critical Rendering Path

It is a convenient metric, and a familiar one, but it fails to capture the dynamic nature of most modern pages. Instead, we want to think about the user perceived performance of the page: how quickly can the user begin interacting with the page? The definition of “interacting” will vary depending on your page. For some, this may be as simple as getting the text visible on the page, such that the user can begin consuming the information they requested (e.g. this page).

For others, this may require wiring up dozens of JavaScript components to build up a JavaScript UI (e.g. So, with that in mind, what does it actually take to do a first content render in a modern browser? DOM + CSSOM = Render Tree. High Performance Web Sites. These rules are the key to speeding up your web pages.

High Performance Web Sites

They've been tested on some of the most popular sites on the Internet and have successfully reduced the response times of those pages by 25-50%. A blog about software development. Performance is important, we all know that. I like performance and I like optimizing websites, but sometimes it’s easy to forget that it’s really all about the users.