quikgif benchmark
Profile the GIF encoding pipeline across different configurations. Generates synthetic frames and measures transform, palette optimization, and encoding performance.
quikgif benchmark [options]
Flags
| Flag | Type | Default | Description |
|---|---|---|---|
--duration | String | 10,30,60 | Comma-separated recording durations in seconds |
--fps | String | 12,24,30 | Comma-separated frame rates |
--max-width | String | 800,1280,1920 | Comma-separated max widths in pixels |
--palette | String | auto,global,per-frame | Comma-separated palette strategies |
--pattern | String | gradient | Synthetic frame pattern: solid, gradient, or noise |
--json | Bool | false | Output results as JSON |
--include-transforms | Bool | false | Include ResolutionScaler transform phase in timing |
--single | Bool | false | Run only the first value of each parameter (quick test) |
How It Works
The benchmark generates synthetic frames at every combination of the specified durations, frame rates, and widths. For each configuration, it measures three phases:
- Transform (optional) -- ResolutionScaler processing time
- Palette optimization -- color quantization via
ColorPaletteOptimizer - GIF encoding -- frame encoding via
GIFEncoder
Results include output size, whether a global or per-frame palette was used, and per-phase timing.
Examples
Quick single-configuration test:
quikgif benchmark --single
Benchmark specific configurations:
quikgif benchmark --duration 5,10 --fps 30 --max-width 800 --palette auto
Full benchmark with JSON output:
quikgif benchmark --json > results.json
Include transform timing:
quikgif benchmark --include-transforms --pattern noise
Output
The default table output shows per-configuration rows with timing breakdowns and a summary section with totals, slowest encode, smallest output, and average encode throughput in frames/sec.
Use --json for machine-readable output suitable for trend analysis or CI integration.