As you may have noticed, I claim that CSS is bad for performance because: Most browsers block the very first paint until all screen CSS arrives Additionally many browsers block rendering until all non-screen (e.g.print) CSS arrives Sometimes CSS blocks downloads See “The evil that CSS do” in CSS and the critical path for details. […]
Archive for the 'performance' Category
YSlow development: custom rulesets
Jun 20th, 2012(This is part 3. See part one and part two.) There are two concepts to remember when working on your YSlow extensions and customizations: rules (or “recommendations” if you will, or “best practices” or simply “lint checks”), and rulesets which are lists of rules An example rule is “Reduce HTTP requests”. An example ruleset is […]
YSlow development: setup
Jun 19th, 2012As promised, let’s setup for YSlow development using the easiest option – the bookmarklet version. The journey of conquering the world with your rules and extensions… starts with the first step. Checkout First you need to get teh codez. Go to the Github repository and click that big ol’ Fork button. Then checkout the repository […]
YSlow development: getting started
Jun 17th, 2012Since version 2.0, YSlow is no longer just a tool, it’s a platform. You can create your own rules (performance or otherwise), combine them into rulesets, tweak scores to your liking and so on. Once Marcel took over and did version 3.0. YSlow can now run in many many environments: as a Firebug extension (like […]
3PO#fail
Jun 16th, 2012So I was flipping through recent slides from Steve Souders and came across a reference to a nice post from Pat Meenan explaining how he setup blackhole.webpagetest.org and how you can edit your hosts file to send third party scripts to the black hole simulating a firewall-blocked or down third party and the effect on […]
Web Performance Daybook vol. 2
Jun 6th, 2012In the spirit of the true high-performance non-blocking asynchronous delivery, we’ll have the Web Performance Daybook volume 2 published before volume 1. I hope you’ll enjoy reading the book as much as I enjoyed working on it and rubbing (virtual) shoulders with some of the brightest people in our industry. Back in December of 2009 […]
CSS and the critical path
Jun 5th, 2012Back 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? (huh? what’s with the parentheses? sure all of them are closed at this point?)))) I remember showing this slide: The reason I’m […]
Update a far-future expiring component
May 22nd, 2012NOTE: This is late night mumbling from a week or two ago, leaving here for posterity. Don’t read it. Meanwhile Steve wrote up a proper blog post which is highly recommended: Self-updating scripts. Read his post instead! tl;dr: Load the component in an iframe, then reload() Backstory Steve Souders and I were chatting last week […]
5 years later: print CSS still sucks
Apr 25th, 2012This tweet had me revise a 5 year old experiment on how print CSS affects page loading, especially in the light of mobile browsers. 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 […]
Velocity Europe discount
Nov 1st, 2011The web performance and operations conference, Velocity Europe, is just around the corner. This always sold-out event is making its EU debut this year in Berlin. Get your ticket now (with 20% discount no less) or punish your users and clients with slow user experiences 🙂 Info: url: http://velocityconf.com/velocityeu/ cost: €600 after 20% discount (ow […]
Social button BFFs
Sep 27th, 2011TL;DR: Loading JavaScript asynchronously is critical for the performance of your web app. Below is an idea how to do it for the most common social buttons out there so you can make sure these don’t interfere with the loading of the rest of your content. After all people need to see your content first, […]
Overlooked Optimizations: Images
Jun 14th, 2011#1 This guest post from Billy Hoffman is the last post in the Velocity countdown series. Velocity starts first thing tomorrow! Hope you enjoyed the ride and please welcome Billy Hoffman! Billy Hoffman (@zoompf) is the founder and CEO of Zoompf, a web performance startup whose scanning technology helps website owners find and fix performance […]
Sultans of Speed
Jun 13th, 2011#2 This post is part of the Velocity countdown series. Stay tuned for the last one tomorrow. With only 2 days to Velocity, it’s time to drop in the quality of these posts (but the one tomorrow will be great, I promise) with today’s announcement of the immediate availability of the project called http://sultansofspeed.com. I […]
Book of Speed
Jun 12th, 2011#3 This post is part of the Velocity countdown series. Stay tuned for the articles to come. Without further ado, please point your browser to the newborn bookofspeed.com. It’s a free (public domain), online, open-source, not yet finished, book about web performance. Contributions welcome The source files are on Github – https://github.com/stoyan/Book-of-Speed. I’ll be glad […]
YSlow 2.0: the first sketches
Jun 11th, 2011#4 This post is part of the Velocity countdown series. Stay tuned for the articles to come. I’m working on tomorrow’s kind of big thing, so will take it easy today, with a stroll down memory lane. I was clearing up my space at home few days ago and came across this oldish notepad. In […]
Perfplanet.com is open
Jun 10th, 2011#5 This post is part of the Velocity countdown series. Stay tuned for the articles to come. It’s been over a year, since the launch of perfplanet.com. Looks good and useful for people so far. Sergey “ShowSlow” is doing also a great job of tweeting as @perfplanet about news from the perfplanet pipes as well […]
Preload in visual search suggestions
Jun 9th, 2011#6 This post is part of the Velocity countdown series. Stay tuned for the articles to come. Alrighty, this is something I’ve talked about last year at HighLoad++ and Fronteers, but never blogged. I came up with this thing while at Yahoo! Search and we used it there in production. So, it must be working. […]
Lazy HTML evaluation
Jun 8th, 2011#7 This post is part of the Velocity countdown series. Stay tuned for the articles to come. Some time ago Google talked about using a sort of lazy JavaScript evaluation which especially helps mobile devices. The idea was to comment out a chunk of JavaScript you don’t need right away and serve it this way. […]
Velocity countdown
Jun 8th, 2011Let me try to set the mood for Velocity 2011 with an attempt to publish one performance-y post a day for the seven days between now and when the conference starts. #7 – Lazy HTML evaluation #6 – Preload in visual search suggestions #5 – perfplanet.com is open #4 – YSlow 2.0: the first sketches […]
Simple Sharding Logic
May 6th, 2011Sharding is the technique where you split static components across multiple domains so the browser can fetch more components in parallel? (Which browser? How many components per hostname? Ask browserscope.org) So you have, say, image-a.png and image-b.png. You want to serve image-a from domain1.example.org and image-b.png from domain2.example.org The thing is you don’t want to […]
Audio sprites
Apr 13th, 2011Another “brilliant” idea that I had recently – how about combining audio files into a single file to reduce HTTP requests, just like we do with CSS sprites? Then use the audio APIs to play only selected parts of the audio. Unlike pretty much all brilliant ideas I have, I decided to search for this […]
A rounded corner
Apr 13th, 2011Warning: not practical blog post, don’t read, move on. So this is a post about a thought I had – creating rounded corners in IE678 by using roundness that they already have built-in, meaning the character O. But first: My opinion is that browsers that don’t support border-radius should never ever get rounded corners. Let […]
HTTPWatch automation with JavaScript
Apr 10th, 2011Background HTTPWatch (automation) …with PHP (and again and again, and response) JavaScript shell scripting I gave this short presentation at the recent Yahoo FE summit’s open mic, here are the slides and some notes. Slides and screencast vid JavaScript shell scripting View more presentations from Stoyan Stefanov Screencast to see the thing in motion: Notes […]
YSlow/Chrome hacking
Mar 24th, 2011If you haven’t seen it yet, YSlow for Chrome hit the streets couple of weeks ago. (And Google’s own PageSpeed did too yesterday. (And there’s now DynaTrace for Firefox. (And WebPageTest for Chrome. (What a month for x-browsering (word?) the performance tools! (And the month’s not even over yet))))) BTW, I closed all the parentheses […]
When is a stylesheet really loaded?
Mar 17th, 2011Often we want to load a CSS file on-demand by inserting a link node. And we want to know when the file finished loading in order to call a callback function for example. Long story short: turns out this is harder than it should be and really unnecessary hard in Firefox. I hereby beg on […]