Tips for getting good performance from Fun programs and builds.

Build configuration

  • Use -DCMAKE_BUILD_TYPE=Release for production binaries.
  • Consider FUN_DEBUG=OFF to remove extra checks in hot paths.
  • FUN_USE_MUSL=ON can help with static/portable builds; measure performance for your use case.

Language-level tips

  • Prefer pre-sized arrays/maps when possible to reduce reallocations.
  • Avoid unnecessary string concatenations in loops; accumulate in arrays and join.
  • Push work to native ops where available (e.g., regex, JSON, math helpers).

Algorithmic choices

  • Choose appropriate data structures (arrays for ordered scans, maps for key lookups).
  • Cache repeated computations or lookups when safe.

Measuring

  • Create small, representative benchmarks.
  • Compare Debug vs. Release to ensure changes are meaningful.

Comments