Archive for the 'performance' Category

Speed geek’s guide to Facebook buttons

Feb 14th, 2013

or “How to help your users share your content on Facebook and not hurt performance” Facebook’s like button is much much faster now than it used to be. It also uses much fewer resources. And lazy-evaluates JavaScript on demand. And so on. But it’s still not the only option when it comes to putting a […]

 

Run jsperf tests in a bunch of WebPagetest browsers

Feb 11th, 2013

Motivation 1. You write a new test to confirm a JavaScript-related performance speculation 2. You click 3. Your test runs in a bunch of browsers Glossary JSperf.com is the site where all you JavaScript performance guesswork should go to die or be confirmed. You know how the old wise people say “JSperf URL or it […]

 

webkit css-on-demand issues

Feb 11th, 2013

This post brought to you via Facebook engineers Jeff Morrison and Andrey Sukhachev, who discovered and helped isolate the issue. Use case Think a “single page app” use case. You click a button. Content comes via XHR. But content is complex (and app is as lazy-loading as possible) and content requires extra CSS. In an […]

 

Digging into the HTTP archive #2

Dec 28th, 2012

Continuing from earlier tonight, let’s see how you can use the HTTP archive as a starting point and continue examining the Internet at large. Task: figure out what % of the JPEGs out there on the web today are progressive vs baseline. Ann Robson has an article for the perfplanet calendar later tonight with all […]

 

Digging into the HTTP archive

Dec 28th, 2012

Update: Second part One way to do web performance research is to dig into what’s out there. It’s a tradition dating back from Steve Souders and his HPWS where he was looking at the top 10 Alexa sites for proof that best practices are or aren’t followed. This involves loading each pages and inspecting the […]

 

Non-onload-blocking async JS

Jun 28th, 2012

Update Oct 2013: for a more bulletproof version, tested in the wild, IE and all, check Philip’s snippet at http://www.lognormal.com/blog/2012/12/12/the-script-loader-pattern/ Asynchronous JS is cool but it still blocks window.onload event (except in IE before 10). That’s rarely a problem, because window.onload is increasingly less important, but still… At my Velocity conference talk today Philip “Log […]

 

3PO

Jun 27th, 2012

Say hello to the 3PO extension for YSlow. It checks your site for integration with popular 3rd parties, such as Facebook, Twitter widgets, Google Analytics and so on. 3PO (3rd party optimization) extension currently has 5 checks: two of them generic to all 3rd parties and three specific to Facebook plugins. I’m looking forward to […]

 

<style> tag to inline style=”” attrrib

Jun 21st, 2012

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. […]

 

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, 2012

As 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, 2012

Since 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, 2012

So 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, 2012

In 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, 2012

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? (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, 2012

NOTE: 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, 2012

This 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, 2011

The 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, 2011

TL;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. […]