Skip to end of metadata
Go to start of metadata

As ClojureScript matures we should start addressing the issues around performance on the major JavaScript engines (JavaScriptCore, SpiderMonkey, V8).

  • Truth inlining
    • calls to truth are pervasive, tests show that inlining truth can give a significant speed improvement
  • Protocol fn dispatch
    • Currently protocol fn dispatch is 2X-3X slower than a regular function call depending on the JS Engine. Truth inlining gives a 20%-30% speed improvement here.
  • Multi-arity fn dispatch
    • Multi-arity dispatch relies on accessing the JS arguments object. This results in an up to an order of magnitude slow down. The compiler should resolve the arity to call at compile time when possible.