---
layout: page
published: true
noToc: false
noComments: false
noDate: false
title: Fun - Performance Guide
subtitle: Build/runtime tuning tips and patterns for better performance.
description: Build/runtime tuning tips and patterns for better performance.
permalink: /documentation/performance/
lang: en
tags:
- better
- build
- patterns
- performance
- runtime
- tips
- tuning
---

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.
