Optimizing Higher-Order Functions in Scala
- Talk Abstract
- Scala relies on libraries as the default mechanism for language extension. While this provides an elegant solution for growing the language, the performance penalty incurred by call-by-name parameters, boxing and anonymous functions is high. We show that inlining alone is not enough to remove this overhead, and present a solution based on decompilation of library code combined with inlining, dead code elimination, and copy propagation. We evaluate our approach on two language extensions, Java-like assert and C-like for-loops and show improvements of up to 45%.
Iulian Dragos is working on the Scala compiler since 2004, being responsible of the JVM backend and compiler optimizations. He is pursuing a PhD under the supervision of Martin Odersky, at EPFL, Switzerland. Before joining the Scala group, he worked as a software engineer on a C++ car dealer management system . He is the author of the Google Data Scala client, a generic library based on XML pickling combinators.
Key Issues for Discussion (cooperative)
(please expand cooperatively) Talk:Scala