Improving Scratch 3 Performance

MIT

Improving virtual machine performance for Scratch, the visual programming language.

Scratch is a visual programming language and online community which empowers children to create their own stories, games, and animations. We worked with the Scratch engineering team in the Life Long Kindergarten group at MIT to improve cross platform, and low power device performance for the next version of scratch.

Challenge

The scratch team began its third rewrite of the scratch-vm in 2017. We joined in early 2018 to focus on performance enhancements for existing platforms. The primary challenge was to make sure that popular scratch blocks (i.e. forever, pen, draw) worked fast under the stress of high volume, and that popular scratch projects were able to run a 30 frames per second on low power devices.

Solution

We created a performance benchmarking harness for scratch to record characteristics relevant to the Scratch VM. We used the top most viewed scratch projects, and the top most depended upon scratch blocks as fodder for end-to-end performance tests of the new Scratch VM. Using this approach, we were able to find hot spots in the VM, and make patches across the engine.

Impact

Through our work method, we were able to develop up to 200-350% improvements in performance for numerous games on desktop depending on browser, and 300% on the 2015 iPad model and low power chrome book we targeted.

Contact Us

We'd love to hear from you. Get in touch!

Phone

+1 617-379-2752

Mail

P.O. Box 961436
Boston, MA 02196