Skip to content

JavaScript Performance For Madmen

kevingadd edited this page Jul 10, 2012 · 58 revisions

JavaScript performance is terrifying and unpredictable. If you want things to run fast, you'll need a dowsing rod, but these test cases might help:

Performance minutiae for individual JS runtimes

SpiderMonkey/TraceMonkey/IonMonkey/JaegerMonkey (Mozilla Firefox)

  • Functions containing try/finally are run by the interpreter.

V8 (Google Chrome)

  • See http://www.youtube.com/watch?v=XAqIpGU8ZZk for various tips
  • V8 cannot represent integers larger than 31 bits as an integer (they get promoted to floats).
  • Floating-point values are almost universally stored in the heap by V8 (which means each one is an allocation).
  • Any function containing a try/catch or try/finally is not optimized.
  • Functions that are too long (including comments and newlines/whitespace) are not inlined and may not be optimized.

Clone this wiki locally