CottonBenchmarks
Benchmarks

Benchmarks that explain real deployment ceilings.

A throughput number only matters when you know what it actually measured. Cotton publishes reviewed baseline rows beside common network ceilings and uses the slowest local write stage for public network-fit claims.

Reviewed baselinesStorage pipeline MB/sNetwork ceilingsProduction code paths

Separate data table

The benchmark numbers live in a small structured table, separate from the marketing copy. Adding a new device means appending a row with CPU, OS, .NET version, profile, source file, and measured MB/s values.

Benchmark scope

The benchmark suite exercises real Cotton storage components: SHA-256 hashing for content addressing, Zstd compression/decompression, AES-GCM crypto processors, filesystem backend I/O, and a synthetic compression-plus-encryption pipeline.

  • Machine mode baselines do not include browser upload, HTTP multipart, PostgreSQL, chunk ownership, manifest creation, progress machinery, TLS, or app-level concurrency.
  • Machine mode baselines do not require PostgreSQL.
  • Quick profiles are cheaper for low-power devices.
  • Standard profiles give stronger local regression evidence.

Network ceiling context

100 MbE, 1 GbE, 2.5 GbE, and 10 GbE are listed as MB/s ceilings because that is how storage benchmarks are easier to read. Around 280 MB/s is the practical target for 2.5 GbE; 10 GbE needs roughly 1.1 GB/s after overhead.

How to read the table

The strongest number is not always the right number. AES-GCM can be fast while compression, hashing, or disk is the real limiter. The network-fit column therefore uses the slowest measured local write stage, not the synthetic pipeline average and not an isolated crypto result.

What to add next

The useful future rows are weak ARM NAS, low-end cloud VM, midrange mini PC, SATA SSD NAS, NVMe desktop, and 10 GbE server. Those rows will show where Cotton stays network-bound and where hardware starts to matter.

What the baselines measure

The benchmark page keeps local stage measurements separate: SHA-256, Zstd compression, AES-GCM encryption, filesystem I/O, synthetic pipeline, and read-side stages. Public coverage uses the slowest write-path stage.

Speed without hand waving

Cotton can talk about speed without hand waving. The table shows whether a machine is likely to cover common network ceilings and names the stage that actually limits ingest processing.

Still not live upload math

Machine baselines are not live end-to-end upload promises. Browser behavior, HTTP, TLS, PostgreSQL, manifest creation, storage backend latency, file mix, and concurrency still shape production throughput.

Measured baselines

Reviewed numbers, not a hero claim.

Each row is loaded from committed Cotton JSON baselines under performance/baselines, with site fallback rows for network or cache failures. New machine-standard baselines appear after the five-minute revalidation window; rows are ordered from weakest to strongest estimated write-path processing limit.

Choose your link

Match Cotton baselines to your network.

Pick the network you actually run. The comparison uses the slowest measured local write stage, because isolated crypto speed does not matter if hashing, compression, or filesystem I/O is slower.

These rows are real machine-standard runs from the Cotton benchmark harness, not hand-entered hero numbers. The public baseline JSON files live on GitHub, and the site revalidates them every five minutes.

Selected network1 GbE
Practical ceiling112 MB/s
Raw line rate125 MB/s

Common home NAS and small office baseline. Compression, crypto, and disk only need low hundreds of MB/s to stay ahead.

Intel Celeron J3355 NAS82.2 MB/slimited by Zstd compression
covers 0.7x

Estimated write-path processing limit versus 1 GbE practical ceiling of 112 MB/s. Uses the slowest measured local stage: SHA-256, Zstd compression, AES-GCM encryption, or filesystem I/O.

Intel N100 mini server150 MB/slimited by Zstd compression
covers 1.3x

Estimated write-path processing limit versus 1 GbE practical ceiling of 112 MB/s. Uses the slowest measured local stage: SHA-256, Zstd compression, AES-GCM encryption, or filesystem I/O.

Intel Xeon E-2236 server448 MB/slimited by Zstd compression
covers 4.0x

Estimated write-path processing limit versus 1 GbE practical ceiling of 112 MB/s. Uses the slowest measured local stage: SHA-256, Zstd compression, AES-GCM encryption, or filesystem I/O.

Intel Core i5-12450H laptop572 MB/slimited by Zstd compression
covers 5.1x

Estimated write-path processing limit versus 1 GbE practical ceiling of 112 MB/s. Uses the slowest measured local stage: SHA-256, Zstd compression, AES-GCM encryption, or filesystem I/O.

Intel Core i7-14700F desktop593 MB/slimited by Zstd compression
covers 5.3x

Estimated write-path processing limit versus 1 GbE practical ceiling of 112 MB/s. Uses the slowest measured local stage: SHA-256, Zstd compression, AES-GCM encryption, or filesystem I/O.

Intel Core i9-13900K desktop884 MB/slimited by Zstd compression
covers 7.9x

Estimated write-path processing limit versus 1 GbE practical ceiling of 112 MB/s. Uses the slowest measured local stage: SHA-256, Zstd compression, AES-GCM encryption, or filesystem I/O.

MachineProfileNetwork fitWrite-path limitSHA-256 hashingZstd compressionAES-GCM encryptFilesystem I/OSynthetic pipelineZstd decompressionAES-GCM decryptSource
Intel Celeron J3355 NASIntel(R) Celeron(R) CPU J3355 @ 2.00GHz / 2 threads / Ubuntu 24.04.4 LTSstandard.NET 10.0.8 / May 24, 2026100 MbEby slowest local write stage82.2 MB/slimited by Zstd compression536 MB/s82.2 MB/s251 MB/s629 MB/s369 MB/s188 MB/s286 MB/sperformance/baselines/linux-x64-intel-r-celeron-r-cpu-j3355-2-00ghz-dotnet10.machine.standard.json
Intel N100 mini serverIntel(R) N100 / 4 threads / Ubuntu 24.04.4 LTSstandard.NET 10.0.7 / May 24, 20261 GbEby slowest local write stage150 MB/slimited by Zstd compression1.24 GB/s150 MB/s447 MB/s1.14 GB/s817 MB/s308 MB/s471 MB/sperformance/baselines/linux-x64-intel-r-n100-dotnet10.machine.standard.json
Intel Xeon E-2236 serverIntel(R) Xeon(R) E-2236 CPU @ 3.40GHz / 12 threads / Ubuntu 24.04.3 LTSstandard.NET 10.0.8 / May 24, 20262.5 GbEby slowest local write stage448 MB/slimited by Zstd compression541 MB/s448 MB/s1.32 GB/s2.31 GB/s2.05 GB/s801 MB/s1.29 GB/sperformance/baselines/linux-x64-intel-r-xeon-r-e-2236-cpu-3-40ghz-dotnet10.machine.standard.json
Intel Core i5-12450H laptop12th Gen Intel(R) Core(TM) i5-12450H / 12 threads / Ubuntu 24.04.3 LTSstandard.NET 10.0.8 / May 24, 20262.5 GbEby slowest local write stage572 MB/slimited by Zstd compression2.00 GB/s572 MB/s1.49 GB/s2.72 GB/s2.45 GB/s966 MB/s1.53 GB/sperformance/baselines/linux-x64-12th-gen-intel-r-core-tm-i5-12450h-dotnet10.machine.standard.json
Intel Core i7-14700F desktop14th Gen Intel(R) Core(TM) i7-14700F / 28 threads / Microsoft Windows 10.0.26200standard.NET 10.0.7 / May 22, 20262.5 GbEby slowest local write stage593 MB/slimited by Zstd compression2.39 GB/s593 MB/s2.06 GB/s1.91 GB/s3.07 GB/s1.14 GB/s2.38 GB/sperformance/baselines/windows-x64-14th-gen-intel-r-core-tm-i7-14700f-dotnet10.machine.standard.json
Intel Core i9-13900K desktop13th Gen Intel(R) Core(TM) i9-13900K / 32 threads / Microsoft Windows 10.0.26200standard.NET 10.0.8 / Jun 01, 20262.5 GbEby slowest local write stage884 MB/slimited by Zstd compression2.53 GB/s884 MB/s2.14 GB/s1.45 GB/s3.04 GB/s1.26 GB/s2.11 GB/sperformance/baselines/windows-x64-13th-gen-intel-r-core-tm-i9-13900k-dotnet10.machine.standard.json
Intel Celeron J3355 NAS

Older low-power Celeron baseline. Useful for showing where the local write path can fall below 1 GbE on compressible ingest.

Intel N100 mini server

Small mini-server baseline. The conservative write-path limit covers 1 GbE, while 2.5 GbE needs more compression headroom.

Intel Xeon E-2236 server

Server CPU baseline. The slowest measured write stage clears practical 2.5 GbE, but it is not a 10 GbE ingest claim.

Intel Core i5-12450H laptop

Mobile CPU baseline. The conservative write-path limit clears practical 2.5 GbE with room for normal deployment overhead.

Intel Core i7-14700F desktop

Desktop baseline. Compression is the conservative write-path limiter, still above practical 2.5 GbE.

Intel Core i9-13900K desktop

High-end desktop baseline. The slowest write stage has strong 2.5 GbE headroom, while 10 GbE remains a full-system target.

FAQ

Direct answers

Why show network ceilings on a benchmark page?

Because users think in network speed when they deploy a file cloud. The public comparison uses the estimated write-path processing limit: the slowest measured SHA-256, Zstd compression, AES-GCM encryption, or filesystem I/O stage. About 280 MB/s covers practical 2.5 GbE; 10 GbE needs about 1.1 GB/s or more after overhead.

Are these benchmark numbers promises?

No. They are reviewed baselines for specific machines and profiles. Real deployments depend on CPU, disk, filesystem, S3 latency, network, TLS, Docker settings, file types, and concurrency.

Why use the slowest write-path stage for coverage?

Because it avoids turning a synthetic pipeline number into a public upload promise. SHA-256, Zstd compression, AES-GCM encryption, and filesystem I/O all need enough local headroom.