Error formatting macro: pagetree: java.lang.NullPointerException

Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.


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 is 3X-5X 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.