Schedule optimization

1 minute read

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 version 7.0, or compared to version 7.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 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. (This option also determines the cache locations for the parse avoidance feature and for JobCache.)

Disabling schedule optimization

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

--emake-optimize-schedule=0