

Website Performance Tutorials - champion
http://code.google.com/speed/articles/

======
kierank
What I really would like to see is an independent third-party which cares
nothing about data mining (maybe the w3c) host commonly used scripts (e.g.
jquery) on Akamai and minified/compressed; all the parameters to their optimum
instead of the myriad of options people use. They'd be so many browser cache
hits.

~~~
natrius
For those who don't care about giving Google their traffic data and aren't
already aware of this, Google offers the previously described service.

<http://code.google.com/apis/ajaxlibs/>

~~~
kierank
The jquery one only has a 1 year expiry time...

~~~
zackattack
What does that mean?

~~~
patio11
When some server on the Internet gives your browser a file, it includes a
metadata called an expiry header (actually, Expires:), which the browser is
supposed to interpret as providing guidelines for caching. For example, if I
tell you that this web page is good for until midnight tomorrow, and the user
requests the same page later today, the browser can (but doesn't have to)
serve the user the page out of the local cache, secure in the knowledge that I
have told it I would not update the page until at least midnight tomorrow.
Since this totally skips the HTTP request for the page the second time, it
results in blazing bugs-in-your-teeth speed.

Saying JQuery's expiry time is 1 year in the future means that Google is
telling browsers who get the JQuery script "Hey guys, you can rely on this
being constant for a year, after that you'll probably want to ask for a new
version." The poster above you apparently thinks this is suboptimal, because a
user should be able to cache a particular version of JQuery for longer than
one year. I think that it is irrelevant, since in actual practice almost no
user agent will reliably persist a cache for a year, and 1 extra HTTP request
a year isn't enough to worry about, anyway.

------
physcab
Can someone post performance tips for Python? Either links or just
suggestions. I've been coding in Python for a couple weeks and I'm not sure
about what tools I have at my disposal for identifying bottlenecks and
subsequently how to address those bottlenecks.

~~~
patio11
My suggestion: your bottleneck is highly unlikely to be Python. Most web
applications get to wait on DB access, network latency, and then browser
rendering. All the backend optimization in the world just gets you to these
bottlenecks faster.

(It is also a whole lot of black magic compared to front-end optimization. See
any of the presentations by the YSlow guys -- google [high performance web
sites] and look for the slides or videos. They give simple, tested, repeatable
"do this and it will work" best practices. Backend optimization, on the other
hand, relies far too much on handwavy lore and near-useless-or-actually-
harmful micro-optimizations. For example, "StringBuffers are sooooooo much
faster than String concatenation!")

~~~
utefan001
"your bottleneck is highly unlikely to be Python. Most web applications get to
wait on DB access, network latency, and then browser rendering"

I second that. My experience is first look into the DB time and second browser
rendering. I have thought Python was the cause for slowness many times and
each time it again proved to be DB time. Also, don't run multiple selects to
the database for a set of records, make it one select.

------
pinkbike
I would expect something a lot more from google. All these ideas are way too
elementary and some are just misguided. Advice like "crop your image"...come
on. The misguided ones are things like "use single quotes instead of double
quotes when printing in php since one does not look for variables in the
string text". The is just misguided and is probably the last thing your should
worry about. This is orders of magnitude from any useful optimization that is
actually impacting your site performance.

~~~
andreyf
Look through the rest also - the advice really varies. I found the part about
avoiding browser reflow [1] very useful. Just last night, I was getting
usability issues with a piece of JS which was executing with each keystroke
and (I now realize) sometimes causing reflow. I fixed it, but now I know what
was broken :)

1\. <http://code.google.com/speed/articles/reflow.html>

------
pxlpshr
Good stuff, this must be a relatively new section.

I've also found Yahoo UI and performance section a great resource too. For
better or worse, Yahoo! apps tend to be heavier on the design and graphics
side so they have some good practices in place.

<http://developer.yahoo.com/yui/>

~~~
_giu
I can recommend to install Yahoo YSlow (<http://developer.yahoo.com/yslow/>),
a Firebug extension for Firefox. next to the achieved performance test results
of a specific page, it also shows how to improve the performance. I think it's
a quite useful tool and perhaps a must-have extension for webdevelopers.

