Back To Schedule
Waterlink Atrium - Advanced

Tuesday May 19th, 11:30-12:15

A faster Vector for Scala

About this Session

As the default `IndexedSeq`, `Vector` is one of the most common collection types in the Scala standard library. It is also one of the most difficult ones to understand as far as the actual implementation is concerned. This talk describes my experience of reimplementing `Vector` based on a new variant of radix-balanced trees. It covers the following topics:

  • Basic radix-balanced tree structures and algorithms
  • Optimizations employed by the old `Vector`
  • The new `Vector` implementation based on radix-balanced finger trees
  • Performance and memory usage: Requirements and benchmarking
  • Making the new implementation compatible for inclusion in the standard library


Stefan Zeiger

Stefan Zeiger is a member of the Scala compiler team at Lightbend. He was the tech lead for Slick since 2011 and the creator of its predecessor, ScalaQuery. He has been a user of Java and the JVM platform professionally since 1996, working on a diverse range of projects from web servers to GUI frameworks and programming language design, and moving on from Java to Scala since 2008. He is a frequent speaker at Scala conferences.