This repository contains performance tests for the Tuist Registry. You can find the individual test runs here.
Below, you can find the results gathered using the GitHub Actions runs. The Package.swift
and Xcode projects have a set of dependencies taken from real projects sent by the community. Each set of dependencies is tested with source control and registry resolutions. Additionally, we also test with the latest unreleased swift-package-mananger
version as it contains a crucial performance improvement.
Time (mean ± σ): 73.026 s ± 8.001 s [User: 89.784 s, System: 17.401 s]
Range (min … max): 66.706 s … 86.556 s 5 runs
Time (mean ± σ): 69.589 s ± 9.568 s [User: 65.782 s, System: 9.692 s]
Range (min … max): 59.352 s … 80.154 s 5 runs
- ~5 % faster compared to source control.
- Cache size: 398 MB
- Restore cache: ~9s
- Resolve: ~18s
- Cache size: 71 MB (82 % less compared to source control)
- Restore cache: ~3s (66 % faster compared to source control)
- Resolve: ~15s (about the same as source control – when using cache, we no longer hit the network)
Time (mean ± σ): 36.802 s ± 1.074 s [User: 61.925 s, System: 9.012 s]
Range (min … max): 35.342 s … 37.982 s 5 runs
Time (mean ± σ): 42.102 s ± 3.453 s [User: 68.086 s, System: 10.986 s]
Range (min … max): 38.757 s … 46.024 s 5 runs
- ~48 % faster compared to registry with the current swift-package-manager.
- ~42 % faster compared to source control with the current swift-package-manager.
- ~15 % slower compared to source control with the latest swift-package-manager.
Time (mean ± σ): 309.176 s ± 36.704 s [User: 346.258 s, System: 67.350 s]
Range (min … max): 273.085 s … 348.343 s 5 runs
Time (mean ± σ): 289.427 s ± 18.107 s [User: 173.334 s, System: 31.886 s]
Range (min … max): 263.536 s … 311.480 s 5 runs
- ~7 % faster compared to source control.
Source: https://github.com/tuist/registry-tests/actions/runs/12785286884/job/35643544979 & https://github.com/tuist/registry-tests/actions/runs/12785286884/job/35645434957
- Cache size: 3184 MB
- Restore cache: ~56s
- Resolve: ~21s
- Save cache: ~123s
Source: https://github.com/tuist/registry-tests/actions/runs/12785286884/job/35643545910 & https://github.com/tuist/registry-tests/actions/runs/12785286884/job/35645587638
- Cache size: 1116 MB (65 % less compared to source control)
- Restore cache: ~20s (64 % faster compared to source control)
- Resolve: ~17s
- Save cache: ~43s (65 % faster compared to source control)
Time (mean ± σ): 196.464 s ± 13.283 s [User: 219.689 s, System: 36.472 s]
Range (min … max): 185.316 s … 215.061 s 5 runs
Time (mean ± σ): 193.458 s ± 5.784 s [User: 122.490 s, System: 17.624 s]
Range (min … max): 185.861 s … 201.466 s 5 runs
- ~38 % faster compared to source control with the current swift-package-manager.
- ~33 % faster compared to registry with the current swift-package-manager.
- ~1.5 % faster compared to source control with the latest swift-package-manager.
Time (mean ± σ): 301.772 s ± 23.934 s [User: 338.501 s, System: 69.636 s]
Range (min … max): 280.729 s … 331.344 s 5 runs
Time (mean ± σ): 348.577 s ± 39.428 s [User: 145.213 s, System: 34.757 s]
Range (min … max): 313.693 s … 413.312 s 5 runs
- ~15 % slower compared to source control.
Source: https://github.com/tuist/registry-tests/actions/runs/12789209966/job/35652131645 & https://github.com/tuist/registry-tests/actions/runs/12790261608/job/35655616668
- Cache size: 3037 MB
- Restore cache: ~56 s
- Resolve: ~22 s
- Save cache: ~86 s
Source: https://github.com/tuist/registry-tests/actions/runs/12789209966/job/35652132887 &
- Cache size: 390 MB (87 % less compared to source control)
- Restore cache: ~17 s (70 % faster compared to source control)
- Resolve: ~27 s (23 % slower compared to source control – most likely an incosistent result as we're not hitting network in this case)
- Save cache: ~15 s (82 % faster compared to source control)
Time (mean ± σ): 574.874 s ± 68.071 s [User: 712.260 s, System: 159.421 s]
Range (min … max): 475.592 s … 657.923 s 5 runs
Time (mean ± σ): 451.905 s ± 59.345 s [User: 205.768 s, System: 48.115 s]
Range (min … max): 385.133 s … 503.462 s 5 runs
- ~21 % faster compared to source control.
Source: https://github.com/tuist/registry-tests/actions/runs/12790594605/job/35656702051
- Cache size: 6619 MB
- Restore cache: ~120 s
- Resolve: ~27 s
- Save cache: ~230 s
Source: https://github.com/tuist/registry-tests/actions/runs/12789209966/job/35652134736 & https://github.com/tuist/registry-tests/actions/runs/12790261608/job/35655617980
- Cache size: 626 MB (91 % less compared to source control)
- Restore cache: ~23 s (81 % faster compared to source control)
- Resolve: ~18 s (33 % faster compared to source control – when using cache, we no longer hit the network, so this time is not too relevant but probably a one-off)
- Save cache: ~33 s (86 % faster compared to source control)