# Bootsnap: Optimizing Ruby App Boot Time

DevFeed: [Bootsnap: Optimizing Ruby App Boot Time](<https://devfeed.tech/articles/bootsnap-optimizing-ruby-app-boot-time-1308.md>)

Original publisher: [Read original article](<https://shopify.engineering/bootsnap-optimizing-ruby-app-boot-time>)

Author: Burke Libbey

Published: 2017-05-18T18:30:00Z

Content type: article

Language: en

Sources: [Shopify Engineering](<https://devfeed.tech/sources/shopify-engineering.md>), [Shopify Engineering - Shopify Engineering](<https://devfeed.tech/sources/shopify-engineering-shopify-engineering.md>)

Topics: [Ruby](<https://devfeed.tech/topics/ruby.md>), [Rails](<https://devfeed.tech/topics/rails.md>), [Caching](<https://devfeed.tech/topics/caching.md>), [Boot Process](<https://devfeed.tech/topics/boot-process.md>), [Unit testing](<https://devfeed.tech/topics/unit-testing.md>)

Tags: [boot-process](<https://devfeed.tech/tags/boot-process.md>), [cache](<https://devfeed.tech/tags/cache.md>), [caching](<https://devfeed.tech/tags/caching.md>), [performance](<https://devfeed.tech/tags/performance.md>), [profiling](<https://devfeed.tech/tags/profiling.md>), [ruby](<https://devfeed.tech/tags/ruby.md>), [shopify](<https://devfeed.tech/tags/shopify.md>), [testing](<https://devfeed.tech/tags/testing.md>)

## AI overview

Shopify describes Bootsnap, a Ruby library that optimizes and caches expensive computations to reduce application boot time. The article focuses on improving development-server startup and unit-test startup in a large Rails monolith through path pre-scanning and compilation caching.

## Source excerpt

8 minute read Hundreds of Shopify developers work on our largest codebase, the monolithic Rails application that powers most of our product offering. There are various benefits to having a "majestic monolith," but also a few downsides. Chief among them is the amount of time people spend waiting for Rails to boot. Doing development, two of the most common tasks are running a development server and running a unit test file. By improving the performance of these tasks, we will also improve the experience for developers working on this codebase and achieve higher iteration speed. We started measuring and profiling the following code paths: Development server: time to first request Unit testing: time to first unit test