Skip to main content

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​

FlagTypeDefaultDescription
--durationString10,30,60Comma-separated recording durations in seconds
--fpsString12,24,30Comma-separated frame rates
--max-widthString800,1280,1920Comma-separated max widths in pixels
--paletteStringauto,global,per-frameComma-separated palette strategies
--patternStringgradientSynthetic frame pattern: solid, gradient, or noise
--jsonBoolfalseOutput results as JSON
--include-transformsBoolfalseInclude ResolutionScaler transform phase in timing
--singleBoolfalseRun 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:

  1. Transform (optional) -- ResolutionScaler processing time
  2. Palette optimization -- color quantization via ColorPaletteOptimizer
  3. 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.