
Google Speed Tips Get Picked Apart - AndrewWarner
http://mashable.com/2009/06/25/google-speed-tips/
======
chaosmachine
Glad to see I'm not the only one who thought those PHP tips were more than a
little suspect...

    
    
      GOOD: echo $_POST['description'];
    

That really should not have made it past their editorial process.

~~~
smokinn
That example was particularly egregious. PHP uses copy-on-write so the temp
variable held a pointer to the 500k of data they mentioned, not a copy.

Had they concatenated a small string to the end _then_ PHP wouldn't copied the
data and used the MB of memory they alluded to.

That whole document was half baked at best.

EDIT: I went to look at the document to reference the example and noticed that
they changed their example. It used to be:

$description = $_POST['description'];

echo $description;

And now it's:

In the following example, imagine if a malicious user had inserted 512KB worth
of characters into a textarea field. This would result in 1MB of memory being
used!

$description = strip_tags($_POST['description']);

echo $description;

There's no reason to copy the variable above, you can simply do this operation
inline and avoid the extra memory consumption:

echo strip_tags($_POST['description']);

So someone is definitely working on making the examples at least match the
description.

------
grandalf
I like the feature of assessing slow CSS. I'd never realized that constructs
like the following would be "very inefficient":

    
    
      #foo p span{
        color: #fff;
      }

~~~
apsurd
i read it, but still have to ask why ?

~~~
dezwald
it's inefficient because the browser has to search/loop through the DOM
looking for the exact pattern of the corresponding css rules, instead of a
direct pointer like:

#my_foo_span{ color:#fff }.

~~~
jonhohle
but they mean different things. one says, all spans which are descendants of
divs which are descendants of some elements with id=foo. the other says one
element with id=my_foo_span. duplicating rules in CSS to match overly specific
IDs defeats one of its major advantages.

