Trio Icon
Trio v5.0.0
Documentation is evolving and is a WIP

Incremental Build

Trio's incremental build feature can significantly reduce the amount of time that it takes to build your site. The actual performance gains that you experience for your own projects greatly depends on a number of arbitrary factors, such as the hardware that you are running it on, the number of pages that need to be built, the number of tag-based callbacks declared in your project assets, and the amount of time that it takes your tag-based callbacks to complete, etc.

The incremental build feature does incur some additional overhead of its own, so smaller projects may not experience as much of a performance advantage as do larger projects, and may in fact build faster without it.

Deleting or renaming files or making changes to trio.json while Trio is not running (while off-line) will cause Trio's cache to get out of sync with the actual state of your project, and will cause subsequent incremental builds to fail. In such cases where you delete and rename files or make changes to trio.json while off-line, you are advised to first run a one-off build using trio build | b prior to building incrementally, which will trigger Trio to regenerate its cache.

Beginning with v3.0.0, when running incremental build, deleting and renaming files as well as making changes to trio.json will trigger a one-off build.

Beginning with v4.3.0, when running incremental build, adding files will trigger a one-off build.

You can influence the incremental build process by declaring your tag-based callback module's internal dependencies to trigger incremental builds.

As an anecdotal example, building a site having 56 pages without incremental build took approximately 5 seconds. Building the same site with one stale fragment using incremental build took approximately 1 seconds, and of that 1 seconds, approximately 400 milliseconds of that can be attributed directly to the overhead incurred by the incremental build process itself.

These tests were repeated 10 times on a 13 inch 2009 late model classic white 2.26 GHz Intel Core 2 Duo MacBook with 8 gigabytes of memory and a spinning hard drive. Had these tests been performed running on a more modern hardware setup, one with current generation multi core processors, faster internal memory and an SSD, the actual performance gains realized would obviously have been significantly greater.

See Also