🛠

Project Configuration

CategoryBuild

Overiew

Recommend project configurations to improve iteration time and deliver optimized final builds.

Configurations

There should be at least 3 build targets to satisfy distinct requirements: Debug, Development, and Release.

Debug

A build with full telemetry enabled and most optimizations disabled.

This can help with hard-to-diagnose issues.

A DLL-based build can improve the linker performance at the cost of optimizations across a DLL boundary.

✔️

  • Easier debugging due to the disabled optimizations.
  • Faster iteration time, from removing the optimization overhead from the build.

  • With most optimizations disabled, the project may run too slowly for testing and profiling.

Development

A build with full telemetry enabled and most release optimizations enabled.

✔️

  • A good balance between options that can be used for testing and for profiling.

  • Increased build times due to the optimizer.

Release

The final build for retail release.

All internal telemetry is disabled, and all optimization settings are enabled.

✔️

  • Highest-performing code.

  • Longest build times.
  • Hardest to debug.