@@ -82,6 +82,11 @@ mkbrr create path/to/file -t https://example-tracker.com/announce -e
82
82
- [ Tracker-Specific Features] ( #tracker-specific-features )
83
83
- [ Incomplete Season Pack Detection] ( #incomplete-season-pack-detection )
84
84
- [ Performance] ( #performance )
85
+ - [ Benchmark Methodology] ( #benchmark-methodology )
86
+ - [ Benchmark Results] ( #benchmark-results )
87
+ - [ Speed Comparison] ( #speed-comparison )
88
+ - [ Consistency] ( #consistency )
89
+ - [ Hardware Specifications] ( #hardware-specifications )
85
90
- [ License] ( #license )
86
91
87
92
## Installation
@@ -283,11 +288,158 @@ Wrote title.torrent (elapsed 3.22s)
283
288
284
289
## Performance
285
290
286
- mkbrr is optimized for speed, and outperforms other popular tools.
287
- We will post some benchmarks later on.
291
+ mkbrr is optimized for speed and consistently outperforms other popular torrent creation tools in our benchmarks.
292
+
293
+ ### Benchmark Methodology
294
+
295
+ All tests were performed using [ hyperfine] ( https://github.com/sharkdp/hyperfine ) with 5 runs per tool after a warm-up run. Cache was cleared between runs on the servers, but not on the Macbook.
296
+
297
+ ### Benchmark Results
298
+
299
+ | Hardware | Test Size | mkbrr | mktorrent | torrenttools | torf |
300
+ | ----------| ---------------| -------| -----------| --------------| ------|
301
+ | ** Leaseweb Server (SSD)** | 21 GiB | ** 7.24s** | 45.41s | 9.07s | 8.85s |
302
+ | ** Hetzner Server (HDD)** | 14 GiB | ** 41.02s** | 68.17s | 47.97s | 58.19s |
303
+ | ** Macbook Pro M4 (NVME)** | 30 GiB | ** 9.71s** | 10.90s | - | 9.78s |
304
+
305
+ ![ Benchmark Comparison] ( docs/benchmarks/benchmark_comparison.png )
306
+
307
+ ### Speed Comparison
308
+
309
+ | Hardware | vs mktorrent | vs torrenttools | vs torf |
310
+ | ----------| -------------| ----------------| ---------|
311
+ | ** Leaseweb Server (SSD)** | 6.3× faster | 1.3× faster | 1.2× faster |
312
+ | ** Hetzner Server (HDD)** | 1.7× faster | 1.2× faster | 1.4× faster |
313
+ | ** Macbook Pro M4 (NVME)** | 1.1× faster | - | Similar |
314
+
315
+ ![ Speed Comparison] ( docs/benchmarks/speed_comparison.png )
316
+
317
+ ### Consistency
318
+
319
+ Besides raw speed, mkbrr shows more consistent performance between runs, with standard deviation percentages between 0.25-3.7% across platforms compared to much higher variances for other tools (up to 39%). This predictable performance is particularly noticeable on mechanical storage where other tools showed wider fluctuations.
320
+
321
+ ![ Consistency Comparison] ( docs/benchmarks/consistency_comparison.png )
322
+
323
+ ### Hardware Specifications
324
+
325
+ #### Leaseweb Dedicated Server (SSD)
326
+ - CPU: Intel Xeon E-2274G @ 4.00GHz
327
+ - RAM: 32GB
328
+ - Storage: 1 × SAMSUNG MZQL21T9HCJR-00A07 1.92TB SSD
329
+
330
+ #### Hetzner Dedicated Server (HDD)
331
+ - CPU: AMD Ryzen 5 3600 (12) @ 4.71GHz
332
+ - RAM: 64GB
333
+ - Storage: 4 × TOSHIBA MG08ACA16TEY in RAID0
334
+
335
+ #### Macbook Pro M4
336
+ - CPU: Apple M4
337
+ - RAM: 16GB
338
+ - Storage: 512GB NVME
339
+
340
+ ### Full results
341
+
342
+ <details >
343
+ <summary >View Full Benchmark Commands & Results</summary >
344
+
345
+ #### Leaseweb Server (21 GiB 1080p season pack)
346
+
347
+ ``` bash
348
+ hyperfine --warmup 1 --runs 5 \
349
+ --setup ' sudo sync && sudo sh -c "echo 3 > /proc/sys/vm/drop_caches"' \
350
+ --prepare ' sudo sync && sudo sh -c "echo 3 > /proc/sys/vm/drop_caches" && rm -f /home/user/Show.S01.DL.1080p.WEB.H264-GROUP.torrent' \
351
+ ' mkbrr create /home/user/torrents/qbittorrent/Show.S01.DL.1080p.WEB.H264-GROUP' \
352
+ ' mktorrent /home/user/torrents/qbittorrent/Show.S01.DL.1080p.WEB.H264-GROUP' \
353
+ ' torrenttools create --threads 8 ~/torrents/qbittorrent/Show.S01.DL.1080p.WEB.H264-GROUP' \
354
+ ' torf --threads 8 /home/user/torrents/qbittorrent/Show.S01.DL.1080p.WEB.H264-GROUP'
355
+
356
+ Benchmark 1: mkbrr create /home/user/torrents/qbittorrent/Show.S01.DL.1080p.WEB.H264-GROUP
357
+ Time (mean ± σ): 7.244 s ± 0.018 s [User: 31.245 s, System: 7.554 s]
358
+ Range (min … max): 7.225 s … 7.270 s 5 runs
359
+
360
+ Benchmark 2: mktorrent /home/user/torrents/qbittorrent/Show.S01.DL.1080p.WEB.H264-GROUP
361
+ Time (mean ± σ): 45.407 s ± 0.163 s [User: 36.495 s, System: 4.983 s]
362
+ Range (min … max): 45.135 s … 45.539 s 5 runs
363
+
364
+ Benchmark 3: torrenttools create --threads 8 ~ /torrents/qbittorrent/Show.S01.DL.1080p.WEB.H264-GROUP
365
+ Time (mean ± σ): 9.074 s ± 0.093 s [User: 29.248 s, System: 5.228 s]
366
+ Range (min … max): 8.908 s … 9.122 s 5 runs
367
+
368
+ Benchmark 4: torf --threads 8 /home/user/torrents/qbittorrent/Show.S01.DL.1080p.WEB.H264-GROUP
369
+ Time (mean ± σ): 8.854 s ± 0.077 s [User: 25.829 s, System: 5.136 s]
370
+ Range (min … max): 8.771 s … 8.937 s 5 runs
371
+
372
+ Summary
373
+ ' mkbrr create /home/user/torrents/qbittorrent/Show.S01.DL.1080p.WEB.H264-GROUP' ran
374
+ 1.22 ± 0.01 times faster than ' torf --threads 8 /home/user/torrents/qbittorrent/Show.S01.DL.1080p.WEB.H264-GROUP'
375
+ 1.25 ± 0.01 times faster than ' torrenttools create --threads 8 ~/torrents/qbittorrent/Show.S01.DL.1080p.WEB.H264-GROUP'
376
+ 6.27 ± 0.03 times faster than ' mktorrent /home/user/torrents/qbittorrent/Show.S01.DL.1080p.WEB.H264-GROUP'
377
+ ```
378
+
379
+ #### Hetzner Server (14 GiB 1080p season pack)
380
+
381
+ ``` bash
382
+ hyperfine --warmup 1 --runs 5 \
383
+ --setup ' sudo sync && sudo sh -c "echo 3 > /proc/sys/vm/drop_caches"' \
384
+ --prepare ' sudo sync && sudo sh -c "echo 3 > /proc/sys/vm/drop_caches" && rm -f /home/user/mkbrr/Show.S01.1080p.SRC.WEB-DL.DDP5.1.H.264-GRP.torrent' \
385
+ ' mkbrr create ~/torrents/qbittorrent/tv/Show.S01.1080p.SRC.WEB-DL.DDP5.1.H.264-GRP' \
386
+ ' mktorrent ~/torrents/qbittorrent/tv/Show.S01.1080p.SRC.WEB-DL.DDP5.1.H.264-GRP' \
387
+ ' torrenttools create --threads 12 ~/torrents/qbittorrent/tv/Show.S01.1080p.SRC.WEB-DL.DDP5.1.H.264-GRP' \
388
+ ' torf --threads 12 ~/torrents/qbittorrent/tv/Show.S01.1080p.SRC.WEB-DL.DDP5.1.H.264-GRP'
389
+
390
+ Benchmark 1: mkbrr create ~ /torrents/qbittorrent/tv/Show.S01.1080p.SRC.WEB-DL.DDP5.1.H.264-GRP
391
+ Time (mean ± σ): 41.022 s ± 0.979 s [User: 13.691 s, System: 6.747 s]
392
+ Range (min … max): 39.938 s … 42.467 s 5 runs
393
+
394
+ Benchmark 2: mktorrent ~ /torrents/qbittorrent/tv/Show.S01.1080p.SRC.WEB-DL.DDP5.1.H.264-GRP
395
+ Time (mean ± σ): 68.168 s ± 26.654 s [User: 17.934 s, System: 6.543 s]
396
+ Range (min … max): 39.268 s … 97.574 s 5 runs
397
+
398
+ Benchmark 3: torrenttools create --threads 12 ~ /torrents/qbittorrent/tv/Show.S01.1080p.SRC.WEB-DL.DDP5.1.H.264-GRP
399
+ Time (mean ± σ): 47.968 s ± 10.552 s [User: 7.052 s, System: 6.551 s]
400
+ Range (min … max): 39.460 s … 66.296 s 5 runs
401
+
402
+ Benchmark 4: torf --threads 12 ~ /torrents/qbittorrent/tv/Show.S01.1080p.SRC.WEB-DL.DDP5.1.H.264-GRP
403
+ Time (mean ± σ): 58.187 s ± 5.787 s [User: 7.185 s, System: 6.511 s]
404
+ Range (min … max): 50.125 s … 65.807 s 5 runs
405
+
406
+ Summary
407
+ mkbrr create ~ /torrents/qbittorrent/tv/Show.S01.1080p.SRC.WEB-DL.DDP5.1.H.264-GRP ran
408
+ 1.17 ± 0.26 times faster than torrenttools create --threads 12 ~ /torrents/qbittorrent/tv/Show.S01.1080p.SRC.WEB-DL.DDP5.1.H.264-GRP
409
+ 1.42 ± 0.15 times faster than torf --threads 12 ~ /torrents/qbittorrent/tv/Show.S01.1080p.SRC.WEB-DL.DDP5.1.H.264-GRP
410
+ 1.66 ± 0.65 times faster than mktorrent ~ /torrents/qbittorrent/tv/Show.S01.1080p.SRC.WEB-DL.DDP5.1.H.264-GRP
411
+ ```
412
+
413
+ #### Macbook Pro M4 (30 GiB 1080p season pack)
414
+
415
+ ``` bash
416
+ hyperfine --warmup 1 --runs 5 \
417
+ --prepare ' rm -f Show.S01.1080p.SRC.WEB-DL.DDP5.1.H.264-GRP.torrent' \
418
+ ' mkbrr create ~/Desktop/Show.S01.1080p.SRC.WEB-DL.DDP5.1.H.264-GRP' \
419
+ ' mktorrent ~/Desktop/Show.S01.1080p.SRC.WEB-DL.DDP5.1.H.264-GRP' \
420
+ ' torf --threads 10 ~/Desktop/Show.S01.1080p.SRC.WEB-DL.DDP5.1.H.264-GRP'
421
+
422
+ Benchmark 1: mkbrr create ~ /Desktop/Show.S01.1080p.SRC.WEB-DL.DDP5.1.H.264-GRP
423
+ Time (mean ± σ): 9.708 s ± 0.355 s [User: 10.823 s, System: 4.297 s]
424
+ Range (min … max): 9.479 s … 10.323 s 5 runs
425
+
426
+ Benchmark 2: mktorrent ~ /Desktop/Show.S01.1080p.SRC.WEB-DL.DDP5.1.H.264-GRP
427
+ Time (mean ± σ): 10.897 s ± 0.701 s [User: 11.021 s, System: 3.038 s]
428
+ Range (min … max): 9.950 s … 11.620 s 5 runs
429
+
430
+ Benchmark 3: torf --threads 10 ~ /Desktop/Show.S01.1080p.SRC.WEB-DL.DDP5.1.H.264-GRP
431
+ Time (mean ± σ): 9.779 s ± 0.749 s [User: 10.776 s, System: 5.253 s]
432
+ Range (min … max): 9.383 s … 11.112 s 5 runs
433
+
434
+ Summary
435
+ mkbrr create ~ /Desktop/Show.S01.1080p.SRC.WEB-DL.DDP5.1.H.264-GRP ran
436
+ 1.01 ± 0.09 times faster than torf --threads 10 ~ /Desktop/Show.S01.1080p.SRC.WEB-DL.DDP5.1.H.264-GRP
437
+ 1.12 ± 0.08 times faster than mktorrent ~ /Desktop/Show.S01.1080p.SRC.WEB-DL.DDP5.1.H.264-GRP
438
+ ```
439
+ </details >
288
440
289
441
## License
290
442
291
443
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
292
444
293
- See [ LICENSE] ( LICENSE ) for the full license text.
445
+ See [ LICENSE] ( LICENSE ) for the full license text.
0 commit comments