Skip to content

Benchmarks

How does Clustta perform against established version control systems on real creative production data? This page summarises the public benchmark we publish at github.com/eaxum/clustta-benchmarks, which extends Blender Studio's 2023 VCS benchmark by adding Clustta and Perforce.

Headline result

Across 788 commits and 148 GB of real creative assets (.BLEND, .PSD, .FBX, .MOV and friends), Clustta finished the replay in 12.8 minutes and stored the entire history in just 36.6 GB - the fastest commit time and the smallest repository footprint of every system tested.

SystemCommit timeRepository size
Clustta12.8 min36.6 GB
Git LFS14.7 min143.2 GB
Git38.0 min78.6 GB
SVN42.9 min145.1 GB
Perforce111.3 min78.8 GB

Git LFS came closest on speed but used roughly the disk because it stores every version of every binary file in full. Git and SVN took 3× longer than Clustta and used 2-4× the storage. Perforce was the clear outlier on time.

Why these numbers

Clustta uses content-defined chunking + Zstandard compression + content-addressed deduplication at the storage layer. Identical chunks across versions, files and even collaborators are stored exactly once. A small edit to a 2 GB scene typically writes only a few new chunks; the rest are referenced.

That's also why the commit operation is fast: most of the work in a typical creative checkpoint is "this file has 12 new chunks, here they are". There's no full re-zip, no whole-file diff, no copy of the previous version.

See Storage & Versioning for the full design.

Methodology

The benchmark uses a replay approach: every commit from a real Clustta project is reconstructed and replayed into each system in chronological order, measuring per-commit time and cumulative repository size.

  • Project: Tired King (ikegwudike) - a 3D animation production
  • Assets: 199 files, 788 commit groups, 1,167 checkpoints, ~148 GB total
  • Largest single file: 3.6 GB
  • Hardware: Intel i7-14700F, 16 GB DDR5, Samsung PM9A1 NVMe SSD, Windows 11 Pro
  • Versions: Git 2.45.2 · SVN 1.14.5 · Perforce 2025.2 · Clustta v0.4.33

Streaming extraction means only one commit's worth of files exists on disk at a time, so the benchmark can run on projects much larger than free disk space.

What each system actually does

SystemCommit operation timedStorage measured
Gitgit add . (staging into packfiles).git/ directory
Git LFSgit add . + git commit + git push to upstream.git/ + bare upstream
SVNsvn commit to local svnadmin repository.svn/ + upstream repo
Perforcep4 reconcile + p4 submit to local p4dServer root (db.* + depot)
ClusttaProcess and store via Clustta pipeline.clst database file

Reproduce it yourself

The benchmark harness, raw CSVs and gnuplot scripts are open source:

github.com/eaxum/clustta-benchmarks

Bring your own project (any .clst file with enough history will do), or use the published dataset. Pull requests adding new systems or new project shapes are welcome.

Further reading

Built with love for creative professionals.