Schedule Optimization

How it Works

Schedule optimization uses performance and dependency information from previous builds to optimize the runtime order of jobs in subsequent builds.

This approach can improve performance on the same number of agents (compared to v7.0, or compared to v7.1 when the requisite information is not available), and enables eMake to realize the "best possible" build performance for a given build with fewer agents.

Using Schedule Optimization

Schedule optimization is enabled by default, but it has no effect if scheduling data files are not available.

Emake automatically generates the scheduling data file in the asset directory ( .emake by default) in the sched subdirectory under a platform-specific directory such as Linux, SunOS, or win32. For example, on Linux the scheduling data file is found in .emake/sched/Linux/emake.sched. The next eMake build that uses the scheduling data file will have improved performance.

Using the --emake-test-case-mode eMake option keeps any schedule optimization data in place.

You can use the --emake-assetdir eMake option to change the location of the asset directory.

Disabling Schedule Optimization

To disable schedule optimization, add the following to the eMake command line:

--emake-optimize-schedule=0