Kevin is a software developer living in Boston. He is currently serving as the CTO of CultureHQ, a startup in Boston based on making workplace community better. In his spare time he plays music, breaks the Ruby virtual machine, and drinks good New England beer.
Pre-evaluation in Ruby
Ruby is historically difficult to optimize due to features that improve flexibility and productivity at the cost of performance. Techniques like Ruby's new JIT compiler and deoptimization code help, but still are limited by techniques like monkey-patching and binding inspection.
Pre-evaluation is another optimization technique that works based on user-defined contracts and assumptions. Users can opt in to optimizations by limiting their use of Ruby's features and thereby allowing further compiler work.
In this talk we'll look at how pre-evaluation works, and what benefits it enables.