Hey Jess

If you're interested in these kinds of micro-optimisations, I'd
recommend the book High Performance JavaScript by Nicholas Zakas (one
of the mentors). There's a whole chapter dedicated to string and regex
optimisation, including a section on appending strings with the + and
the += operators. I won't go into details here as I'd have to retype
the whole section, but it's basically to do with how memory is
allocated for each string. Anyway, buy the book, it's good.

Nick

On 14 October 2011 21:25, Jess Jacobs <[email protected]> wrote:
> Hello everyone,
> I ran into an interesting issue while trying to prove that adding string
> concats to a long running string simply to fit the "80 char/line" idea was
> not a good thing.
> http://jsperf.com/string-concat-vs-long-lines
> I discovered, unless my tests have errors (please call 'em out if so!):
> 1. string declaration without concats is faster than concatenating two
> strings (obviously)
> 2. concatenating string + string is slower than concatenating var (with a
> string value) + string (interesting)
> 3. concatenating a var (string value) with a string is FASTER than declaring
> a variable with only a string value (very interesting)
> The tests are vastly different for each browser, with Safari taking an
> unbelievable lead in string processing over Chrome. Firefox came in dead
> last of the three (I didn't test IE, but if someone wants to, I'm definitely
> curious). Some test results differ even in which method is fastest in a
> particular browser, but not typically by much. While the browser speed
> differences were surprising to me, what's more surprising is item #3 above.
> Items 1 and 2 make a lot of sense to me; 1 being obvious, 2 I'm figuring
> could be explained by primitive type conversion possibly not having to
> happen due to one of the concat'd items already being a String object - but
> now that I think about it, aren't they both primitive types since neither
> were created as new String(), etc? 3, however, blows my mind. How on earth
> is it faster to concat a var and a string and assign it to a var than it is
> to simply assign a string value to a var?
> I'd really love to get way down to the nitty gritty on this, so anyone with
> any insight, your replies are appreciated. Also would love to see any test
> cases (more robust than mine) that could illustrate better what exactly is
> going on here.
> Thanks,
> Jess
> ========================
> Jess Jacobs
> [email protected]
> flavors.me/akisma - music, sound design, code.
>
> --
> To view archived discussions from the original JSMentors Mailman list:
> http://www.mail-archive.com/[email protected]/
>
> To search via a non-Google archive, visit here:
> http://www.mail-archive.com/[email protected]/
>
> To unsubscribe from this group, send email to
> [email protected]
>



-- 
Nick Morgan
http://skilldrick.co.uk
@skilldrick

Save our in-boxes! http://emailcharter.org

-- 
To view archived discussions from the original JSMentors Mailman list: 
http://www.mail-archive.com/[email protected]/

To search via a non-Google archive, visit here: 
http://www.mail-archive.com/[email protected]/

To unsubscribe from this group, send email to
[email protected]

Reply via email to