How JavaScript works: inside the V8 engine
> How to write optimized JavaScript<p>This is all sensible advice if you're interested in writing fast-enough code, but I do find there's a lack of material for people who want to write <i>fast</i> Javascript. Pretty much the only thing I've found is the post by Oz[1], though I really don't want to have to compile Chrome.<p>For an example, I have a method in Javascript that does a mix of (integer) arithmetic and typed array accesses; no object creation or other baggage. I want it to go faster, and with effort I managed to speed it up a factor of 5. One of the things that helped was inlining the {data, width, height} fields of an ImageData object; just moving them to locals dropped time by ~40%.<p>Yet after all this effort, mostly based on educated guesses since Chrome's tooling doesn't expose the underlying JIT code for analysis, the code is still suboptimal. There's a pair of `if`s that if I swap their order, that part of the code allocates. How do people deal with these issues? A large fraction of this code is still allocating, and I haven't a clue where or why.<p>Perhaps I'm asking too much from a language without value types (srsly tho, every fast language has value types), but what I want is clearly possible: ASM.js does it! I don't <i>really</i> want to handwrite that, though.<p>[1]: <a href="https://www.html5rocks.com/en/tutorials/performance/mystery/" rel="nofollow">https://www.html5rocks.com/en/tutorials/performance/mystery/</a> (E: This link is actually written from a different perspective than the one I read, but the content is the same.)