Skip to content

Performance ​

lakreet-swarm renders sequentially by default. Parallel execution was tested and found to provide minimal benefit.

Benchmarks (author's machine) ​

WorkersSpeedupNotes
1 (default)1.00xBaseline
21.11xBelow 1.5x threshold
4~1.15xDiminishing returns

Test conditions:

  • Template: 10s, 1080p, simple text + opacity
  • Machine: Windows 11, 12th gen Intel, 32GB RAM, RTX 3080
  • EffectCraft 0.8.0

Why no --jobs? ​

The 1.11x speedup with 2 workers is below the 1.5x threshold for adding complexity. Factors:

  1. EffectCraft bottleneck — Single render already uses most GPU/CPU
  2. I/O contention — Multiple FFmpeg processes compete for disk
  3. Memory pressure — Each EffectCraft instance loads full project
  4. Overhead — Process spawn, temp files, coordination

Progress estimation ​

Progress bar is an estimate because:

  • EffectCraft doesn't report frame progress when stdout/stderr captured
  • ETA based on average of completed renders
  • First render has no baseline -> shows 0% until done
TTY: ████████████████████ 100%  [50/100] 50-row  2m30s
Non-TTY: Rendering 100 row(s)... [12/100] 12-row  ETA: 4m

Factors affecting performance ​

FactorImpact
Template complexityMore layers/effects = slower
Resolution4K ~4x slower than 1080p
CodecH.264 faster than WebM/VP9
Disk speedNVMe > SSD > HDD for temp files
GPUHardware encode (NVENC/QuickSync) major speedup

Optimization tips ​

TipEffect
Use --resolution half for drafts4x faster
Use --quality draftFaster encode
Use H.264 with NVENCHardware encode
Render to NVMeFaster temp I/O
Close other GPU appsMore VRAM for EffectCraft

Next steps ​

Independent project. Not affiliated with the ArtCraft team or the EffectCraft project.