The benchmarks take several hours to run and create hundreds of millions of files. Run at your own
risk. :)
Run all commands in the root of this repository.
cargo install hyperfine ftzz
cargo b --workspace --release
mkdir benches /tmp/empty
Linux: 5.14.0-162.18.1.el9_1.x86_64
CPU: Intel i7-7700
Memory: 15GiB
/dev/sda6 /tmp xfs rw,nosuid,nodev,relatime,attr2,inode64,logbufs=8,logbsize=32k,noquota 0 0
The macOS/Windows implementations are currently equivalent to the *_rayon
implementations shown
in the benchmarks.
for num_bytes in {0,1G}; do
for num_files in {10,10_000,100_000,1M}; do
hyperfine --warmup 3 -N \
--export-markdown " benches/remove_${num_files} _files_${num_bytes} _bytes.md" \
--export-json " benches/remove_${num_files} _files_${num_bytes} _bytes.json" \
--prepare " ftzz g -n ${num_files} -b ${num_bytes} /tmp/ftzz" \
" rm -r /tmp/ftzz" \
" find /tmp/ftzz -delete" \
" rsync --delete -r /tmp/empty/ /tmp/ftzz" \
" ./target/release/rm_stdlib /tmp/ftzz" \
" ./target/release/rm_rayon /tmp/ftzz" \
" ./target/release/rm_remove_dir_all /tmp/ftzz" \
" ./target/release/rmz /tmp/ftzz"
done
hyperfine --warmup 3 -N \
--export-markdown " benches/remove_100_000_files_${num_bytes} _bytes_0_depth.md" \
--export-json " benches/remove_100_000_files_${num_bytes} _bytes_0_depth.json" \
--prepare " ftzz g -n 100_000 -b ${num_bytes} -d 0 /tmp/ftzz" \
" rm -r /tmp/ftzz" \
" find /tmp/ftzz -delete" \
" rsync --delete -r /tmp/empty/ /tmp/ftzz" \
" perl -e 'for(</tmp/ftzz/*>){unlink}'" \
" ./target/release/rm_stdlib /tmp/ftzz" \
" ./target/release/rm_rayon /tmp/ftzz" \
" ./target/release/rm_remove_dir_all /tmp/ftzz" \
" ./target/release/rmz /tmp/ftzz"
hyperfine --warmup 3 -N \
--export-markdown " benches/remove_100_000_files_${num_bytes} _bytes_5_files_per_dir.md" \
--export-json " benches/remove_100_000_files_${num_bytes} _bytes_5_files_per_dir.json" \
--prepare " ftzz g -n 100_000 -b ${num_bytes} -r 5 /tmp/ftzz" \
" rm -r /tmp/ftzz" \
" find /tmp/ftzz -delete" \
" rsync --delete -r /tmp/empty/ /tmp/ftzz" \
" ./target/release/rm_stdlib /tmp/ftzz" \
" ./target/release/rm_rayon /tmp/ftzz" \
" ./target/release/rm_remove_dir_all /tmp/ftzz" \
" ./target/release/rmz /tmp/ftzz"
done
remove_1M_files_0_bytes.md
Command
Mean [s]
Min [s]
Max [s]
User [s]
System [s]
Relative
./target/release/rmz /tmp/ftzz
4.711 ± 0.649
4.208
6.099
0.535
18.650
1.00
./target/release/rm_rayon /tmp/ftzz
5.689 ± 0.549
5.007
6.630
1.253
20.088
1.21 ± 0.20
./target/release/rm_stdlib /tmp/ftzz
9.345 ± 0.063
9.282
9.457
0.377
8.708
1.98 ± 0.27
rm -r /tmp/ftzz
9.491 ± 0.059
9.444
9.650
0.465
8.768
2.01 ± 0.28
find /tmp/ftzz -delete
9.535 ± 0.051
9.434
9.620
0.485
8.804
2.02 ± 0.28
rsync --delete -r /tmp/empty/ /tmp/ftzz
11.046 ± 0.049
10.989
11.120
0.911
9.914
2.34 ± 0.32
./target/release/rm_remove_dir_all /tmp/ftzz
12.647 ± 0.088
12.532
12.758
1.376
10.950
2.68 ± 0.37
remove_1M_files_1G_bytes.md
Command
Mean [s]
Min [s]
Max [s]
User [s]
System [s]
Relative
./target/release/rmz /tmp/ftzz
6.559 ± 0.463
5.977
7.689
0.556
28.872
1.00
./target/release/rm_rayon /tmp/ftzz
7.765 ± 0.454
7.047
8.567
1.331
30.759
1.18 ± 0.11
rsync --delete -r /tmp/empty/ /tmp/ftzz
18.924 ± 0.321
18.394
19.428
0.977
16.014
2.89 ± 0.21
./target/release/rm_stdlib /tmp/ftzz
22.892 ± 0.885
21.842
24.252
0.451
17.758
3.49 ± 0.28
find /tmp/ftzz -delete
23.020 ± 0.755
21.342
23.911
0.601
17.805
3.51 ± 0.27
rm -r /tmp/ftzz
23.354 ± 0.990
21.777
24.772
0.563
17.907
3.56 ± 0.29
./target/release/rm_remove_dir_all /tmp/ftzz
26.357 ± 0.758
24.981
27.640
1.505
20.445
4.02 ± 0.31
remove_100_000_files_0_bytes.md
Command
Mean [ms]
Min [ms]
Max [ms]
User [ms]
System [ms]
Relative
./target/release/rmz /tmp/ftzz
459.3 ± 96.0
369.7
583.3
65.2
1697.5
1.00
./target/release/rm_rayon /tmp/ftzz
648.1 ± 94.7
535.5
811.3
158.6
2121.1
1.41 ± 0.36
./target/release/rm_stdlib /tmp/ftzz
804.2 ± 19.5
777.9
848.2
42.5
723.3
1.75 ± 0.37
find /tmp/ftzz -delete
826.2 ± 22.6
796.3
853.0
55.3
728.1
1.80 ± 0.38
rm -r /tmp/ftzz
873.7 ± 54.2
813.7
968.5
53.2
744.3
1.90 ± 0.41
rsync --delete -r /tmp/empty/ /tmp/ftzz
1012.7 ± 16.8
996.3
1045.1
96.1
846.1
2.21 ± 0.46
./target/release/rm_remove_dir_all /tmp/ftzz
1132.0 ± 46.9
1099.2
1243.2
136.3
945.9
2.46 ± 0.53
remove_100_000_files_0_bytes_0_depth.md
Command
Mean [ms]
Min [ms]
Max [ms]
User [ms]
System [ms]
Relative
./target/release/rmz /tmp/ftzz
830.7 ± 21.7
805.1
863.2
31.6
769.5
1.00
./target/release/rm_stdlib /tmp/ftzz
833.8 ± 26.8
806.7
881.3
34.7
769.5
1.00 ± 0.04
rm -r /tmp/ftzz
847.1 ± 15.3
833.9
871.3
53.1
775.2
1.02 ± 0.03
find /tmp/ftzz -delete
849.7 ± 14.8
835.2
875.2
50.3
781.1
1.02 ± 0.03
rsync --delete -r /tmp/empty/ /tmp/ftzz
978.3 ± 24.4
954.3
1033.6
89.4
819.5
1.18 ± 0.04
perl -e 'for(</tmp/ftzz/*>){unlink}'
1070.0 ± 5.3
1063.0
1078.6
132.8
923.4
1.29 ± 0.03
./target/release/rm_remove_dir_all /tmp/ftzz
1155.9 ± 42.9
1104.6
1256.0
124.8
984.6
1.39 ± 0.06
./target/release/rm_rayon /tmp/ftzz
1193.3 ± 307.0
1082.7
2066.6
102.5
2030.4
1.44 ± 0.37
remove_100_000_files_0_bytes_5_files_per_dir.md
Command
Mean [s]
Min [s]
Max [s]
User [s]
System [s]
Relative
./target/release/rmz /tmp/ftzz
0.640 ± 0.189
0.445
0.950
0.145
2.228
1.00
./target/release/rm_rayon /tmp/ftzz
0.784 ± 0.110
0.670
0.961
0.303
2.610
1.22 ± 0.40
./target/release/rm_stdlib /tmp/ftzz
0.988 ± 0.057
0.940
1.117
0.091
0.832
1.54 ± 0.46
find /tmp/ftzz -delete
1.090 ± 0.021
1.056
1.136
0.164
0.883
1.70 ± 0.50
rm -r /tmp/ftzz
1.123 ± 0.013
1.098
1.141
0.153
0.921
1.75 ± 0.52
rsync --delete -r /tmp/empty/ /tmp/ftzz
1.190 ± 0.020
1.168
1.238
0.168
0.956
1.86 ± 0.55
./target/release/rm_remove_dir_all /tmp/ftzz
1.340 ± 0.031
1.304
1.405
0.224
1.045
2.09 ± 0.62
remove_100_000_files_1G_bytes.md
Command
Mean [s]
Min [s]
Max [s]
User [s]
System [s]
Relative
./target/release/rmz /tmp/ftzz
0.558 ± 0.129
0.400
0.734
0.063
2.339
1.00
./target/release/rm_rayon /tmp/ftzz
0.625 ± 0.116
0.535
0.934
0.141
2.450
1.12 ± 0.33
./target/release/rm_stdlib /tmp/ftzz
1.104 ± 0.014
1.080
1.132
0.043
1.020
1.98 ± 0.46
find /tmp/ftzz -delete
1.128 ± 0.016
1.110
1.155
0.054
1.027
2.02 ± 0.47
rm -r /tmp/ftzz
1.129 ± 0.008
1.117
1.142
0.054
1.035
2.02 ± 0.47
rsync --delete -r /tmp/empty/ /tmp/ftzz
1.311 ± 0.005
1.301
1.317
0.098
1.138
2.35 ± 0.54
./target/release/rm_remove_dir_all /tmp/ftzz
1.454 ± 0.014
1.434
1.478
0.143
1.261
2.60 ± 0.60
remove_100_000_files_1G_bytes_0_depth.md
Command
Mean [s]
Min [s]
Max [s]
User [s]
System [s]
Relative
./target/release/rm_rayon /tmp/ftzz
1.087 ± 0.005
1.081
1.097
0.092
2.516
1.00
./target/release/rmz /tmp/ftzz
1.115 ± 0.025
1.090
1.173
0.028
1.048
1.03 ± 0.02
./target/release/rm_stdlib /tmp/ftzz
1.124 ± 0.038
1.094
1.208
0.034
1.044
1.03 ± 0.04
rm -r /tmp/ftzz
1.129 ± 0.017
1.102
1.158
0.052
1.046
1.04 ± 0.02
find /tmp/ftzz -delete
1.137 ± 0.011
1.120
1.156
0.057
1.048
1.05 ± 0.01
rsync --delete -r /tmp/empty/ /tmp/ftzz
1.251 ± 0.019
1.235
1.301
0.087
1.093
1.15 ± 0.02
perl -e 'for(</tmp/ftzz/*>){unlink}'
1.354 ± 0.008
1.342
1.367
0.130
1.192
1.24 ± 0.01
./target/release/rm_remove_dir_all /tmp/ftzz
1.470 ± 0.031
1.438
1.537
0.127
1.285
1.35 ± 0.03
remove_100_000_files_1G_bytes_5_files_per_dir.md
Command
Mean [s]
Min [s]
Max [s]
User [s]
System [s]
Relative
./target/release/rmz /tmp/ftzz
0.508 ± 0.034
0.483
0.600
0.115
2.352
1.00
./target/release/rm_rayon /tmp/ftzz
0.683 ± 0.059
0.599
0.779
0.261
2.828
1.34 ± 0.15
./target/release/rm_stdlib /tmp/ftzz
1.246 ± 0.033
1.209
1.327
0.102
1.082
2.45 ± 0.18
find /tmp/ftzz -delete
1.387 ± 0.034
1.354
1.462
0.169
1.159
2.73 ± 0.19
rm -r /tmp/ftzz
1.402 ± 0.023
1.372
1.451
0.163
1.182
2.76 ± 0.19
rsync --delete -r /tmp/empty/ /tmp/ftzz
1.485 ± 0.012
1.460
1.501
0.168
1.237
2.92 ± 0.20
./target/release/rm_remove_dir_all /tmp/ftzz
1.632 ± 0.026
1.598
1.689
0.230
1.338
3.21 ± 0.22
remove_10_000_files_0_bytes.md
Command
Mean [ms]
Min [ms]
Max [ms]
User [ms]
System [ms]
Relative
./target/release/rmz /tmp/ftzz
33.9 ± 1.1
32.1
36.3
9.2
145.0
1.00
./target/release/rm_rayon /tmp/ftzz
40.1 ± 2.3
37.2
48.1
18.6
160.0
1.18 ± 0.08
./target/release/rm_stdlib /tmp/ftzz
77.2 ± 1.3
75.3
80.0
7.2
68.4
2.28 ± 0.08
find /tmp/ftzz -delete
85.4 ± 1.3
84.0
88.5
10.1
73.0
2.52 ± 0.09
rm -r /tmp/ftzz
86.1 ± 1.5
84.8
89.2
11.3
73.0
2.54 ± 0.09
./target/release/rm_remove_dir_all /tmp/ftzz
110.8 ± 1.5
109.1
113.8
18.2
90.2
3.27 ± 0.12
rsync --delete -r /tmp/empty/ /tmp/ftzz
138.6 ± 1.3
136.8
143.0
14.1
83.7
4.09 ± 0.14
remove_10_000_files_1G_bytes.md
Command
Mean [ms]
Min [ms]
Max [ms]
User [ms]
System [ms]
Relative
./target/release/rmz /tmp/ftzz
45.4 ± 1.8
43.7
50.0
7.3
297.6
1.00
./target/release/rm_rayon /tmp/ftzz
51.6 ± 1.2
50.0
53.8
18.6
310.4
1.14 ± 0.05
./target/release/rm_stdlib /tmp/ftzz
171.2 ± 1.5
168.9
173.8
5.5
162.0
3.77 ± 0.15
find /tmp/ftzz -delete
179.9 ± 0.9
178.7
181.4
12.2
163.8
3.96 ± 0.16
rm -r /tmp/ftzz
181.5 ± 1.3
180.1
184.6
12.4
165.4
4.00 ± 0.16
./target/release/rm_remove_dir_all /tmp/ftzz
208.0 ± 1.5
206.0
209.9
17.3
186.1
4.58 ± 0.19
rsync --delete -r /tmp/empty/ /tmp/ftzz
233.8 ± 0.9
232.5
235.1
14.4
176.7
5.15 ± 0.21
remove_10_files_0_bytes.md
Command
Mean [ms]
Min [ms]
Max [ms]
User [ms]
System [ms]
Relative
./target/release/rmz /tmp/ftzz
1.1 ± 0.1
1.0
1.4
0.6
1.6
1.00
./target/release/rm_remove_dir_all /tmp/ftzz
1.3 ± 0.0
1.2
1.4
0.4
0.8
1.18 ± 0.07
./target/release/rm_rayon /tmp/ftzz
1.5 ± 0.4
1.2
3.5
1.2
2.9
1.39 ± 0.34
./target/release/rm_stdlib /tmp/ftzz
2.8 ± 0.1
2.5
3.2
0.7
1.9
2.53 ± 0.16
rm -r /tmp/ftzz
3.5 ± 0.1
3.3
3.7
1.0
2.3
3.25 ± 0.20
find /tmp/ftzz -delete
4.2 ± 0.3
3.5
4.8
1.0
2.6
3.85 ± 0.38
rsync --delete -r /tmp/empty/ /tmp/ftzz
46.8 ± 0.1
46.5
47.0
2.4
5.1
42.89 ± 2.40
remove_10_files_1G_bytes.md
Command
Mean [ms]
Min [ms]
Max [ms]
User [ms]
System [ms]
Relative
./target/release/rm_rayon /tmp/ftzz
15.9 ± 1.1
14.1
17.7
1.0
69.2
1.00
./target/release/rmz /tmp/ftzz
17.3 ± 0.6
16.2
18.3
0.7
61.5
1.09 ± 0.08
./target/release/rm_stdlib /tmp/ftzz
48.4 ± 0.3
47.4
49.1
0.3
47.4
3.04 ± 0.20
./target/release/rm_remove_dir_all /tmp/ftzz
48.5 ± 0.3
47.5
48.8
0.3
47.6
3.05 ± 0.20
rm -r /tmp/ftzz
49.0 ± 1.9
48.0
57.7
0.5
47.7
3.08 ± 0.24
find /tmp/ftzz -delete
51.2 ± 8.9
48.9
91.1
0.3
48.0
3.22 ± 0.60
rsync --delete -r /tmp/empty/ /tmp/ftzz
90.3 ± 0.2
90.0
90.8
1.5
48.5
5.68 ± 0.38
cargo install fcp xcp
git clone https://github.com/wheybags/wcp.git && mkdir wcp/build && (cd wcp/build && cmake .. -DCMAKE_BUILD_TYPE=Release && make)
for num_bytes in {0,1G}; do
for num_files in {10,10_000,100_000,1M}; do
hyperfine --warmup 3 -N \
--export-markdown " benches/copy_${num_files} _files_${num_bytes} _bytes.md" \
--export-json " benches/copy_${num_files} _files_${num_bytes} _bytes.json" \
--setup " ftzz g -n ${num_files} -b ${num_bytes} /tmp/ftzz" \
--prepare " rm -rf /tmp/ftzzz" --cleanup " rm -r /tmp/ftzz" \
" cp -r /tmp/ftzz /tmp/ftzzz" \
" fcp /tmp/ftzz /tmp/ftzzz" \
" xcp -r /tmp/ftzz /tmp/ftzzz" \
" ./wcp/build/wcp /tmp/ftzz /tmp/ftzzz" \
" rsync -rlp --inplace /tmp/ftzz /tmp/ftzzz" \
" sh -c '(cd /tmp/ftzz; tar cf - .) | (mkdir /tmp/ftzzz; cd /tmp/ftzzz; tar xf -)'" \
" ./target/release/cp_stdlib /tmp/ftzz /tmp/ftzzz" \
" ./target/release/cp_rayon /tmp/ftzz /tmp/ftzzz" \
" ./target/release/cpz /tmp/ftzz /tmp/ftzzz"
done
hyperfine --warmup 3 -N \
--export-markdown " benches/copy_100_000_files_${num_bytes} _bytes_0_depth.md" \
--export-json " benches/copy_100_000_files_${num_bytes} _bytes_0_depth.json" \
--setup " ftzz g -n 100_000 -b ${num_bytes} -d 0 /tmp/ftzz" \
--prepare " rm -rf /tmp/ftzzz" --cleanup " rm -r /tmp/ftzz" \
" cp -r /tmp/ftzz /tmp/ftzzz" \
" fcp /tmp/ftzz /tmp/ftzzz" \
" xcp -r /tmp/ftzz /tmp/ftzzz" \
" ./wcp/build/wcp /tmp/ftzz /tmp/ftzzz" \
" rsync -rlp --inplace /tmp/ftzz /tmp/ftzzz" \
" sh -c '(cd /tmp/ftzz; tar cf - .) | (mkdir /tmp/ftzzz; cd /tmp/ftzzz; tar xf -)'" \
" ./target/release/cp_stdlib /tmp/ftzz /tmp/ftzzz" \
" ./target/release/cp_rayon /tmp/ftzz /tmp/ftzzz" \
" ./target/release/cpz /tmp/ftzz /tmp/ftzzz"
hyperfine --warmup 3 -N \
--export-markdown " benches/copy_100_000_files_${num_bytes} _bytes_5_files_per_dir.md" \
--export-json " benches/copy_100_000_files_${num_bytes} _bytes_5_files_per_dir.json" \
--setup " ftzz g -n 100_000 -b ${num_bytes} -r 5 /tmp/ftzz" \
--prepare " rm -rf /tmp/ftzzz" --cleanup " rm -r /tmp/ftzz" \
" cp -r /tmp/ftzz /tmp/ftzzz" \
" fcp /tmp/ftzz /tmp/ftzzz" \
" xcp -r /tmp/ftzz /tmp/ftzzz" \
" ./wcp/build/wcp /tmp/ftzz /tmp/ftzzz" \
" rsync -rlp --inplace /tmp/ftzz /tmp/ftzzz" \
" sh -c '(cd /tmp/ftzz; tar cf - .) | (mkdir /tmp/ftzzz; cd /tmp/ftzzz; tar xf -)'" \
" ./target/release/cp_stdlib /tmp/ftzz /tmp/ftzzz" \
" ./target/release/cp_rayon /tmp/ftzz /tmp/ftzzz" \
" ./target/release/cpz /tmp/ftzz /tmp/ftzzz"
done
hyperfine --warmup 3 -N \
--export-markdown " benches/copy_100_000_files_1G_bytes_0_depth_0_entropy.md" \
--export-json " benches/copy_100_000_files_1G_bytes_0_depth_0_entropy.json" \
--setup " ftzz g -n 100_000 -b 1G -d 0 --fill-byte 0 /tmp/ftzz" \
--prepare " rm -rf /tmp/ftzzz" --cleanup " rm -r /tmp/ftzz" \
" cp -r /tmp/ftzz /tmp/ftzzz" \
" fcp /tmp/ftzz /tmp/ftzzz" \
" xcp -r /tmp/ftzz /tmp/ftzzz" \
" ./wcp/build/wcp /tmp/ftzz /tmp/ftzzz" \
" rsync -rlp --inplace /tmp/ftzz /tmp/ftzzz" \
" sh -c '(cd /tmp/ftzz; tar cf - .) | (mkdir /tmp/ftzzz; cd /tmp/ftzzz; tar xf -)'" \
" ./target/release/cp_stdlib /tmp/ftzz /tmp/ftzzz" \
" ./target/release/cp_rayon /tmp/ftzz /tmp/ftzzz" \
" ./target/release/cpz /tmp/ftzz /tmp/ftzzz"
Command
Mean [s]
Min [s]
Max [s]
User [s]
System [s]
Relative
./target/release/cpz /tmp/ftzz /tmp/ftzzz
5.076 ± 0.976
4.283
6.700
2.769
23.713
1.00
./target/release/cp_rayon /tmp/ftzz /tmp/ftzzz
5.854 ± 0.310
5.542
6.429
5.287
29.890
1.15 ± 0.23
fcp /tmp/ftzz /tmp/ftzzz
11.801 ± 0.085
11.727
11.993
5.376
59.341
2.33 ± 0.45
xcp -r /tmp/ftzz /tmp/ftzzz
11.829 ± 0.066
11.733
11.920
5.420
39.040
2.33 ± 0.45
sh -c '(cd /tmp/ftzz; tar cf - .) | (mkdir /tmp/ftzzz; cd /tmp/ftzzz; tar xf -)'
15.019 ± 0.079
14.915
15.131
3.893
14.808
2.96 ± 0.57
cp -r /tmp/ftzz /tmp/ftzzz
18.436 ± 0.097
18.313
18.622
2.836
15.261
3.63 ± 0.70
./target/release/cp_stdlib /tmp/ftzz /tmp/ftzzz
19.496 ± 0.090
19.346
19.609
3.217
15.928
3.84 ± 0.74
rsync -rlp --inplace /tmp/ftzz /tmp/ftzzz
28.195 ± 0.159
27.929
28.439
6.635
23.035
5.55 ± 1.07
copy_1M_files_1G_bytes.md
Command
Mean [s]
Min [s]
Max [s]
User [s]
System [s]
Relative
./target/release/cpz /tmp/ftzz /tmp/ftzzz
7.593 ± 0.735
7.141
9.648
3.151
40.109
1.00
./target/release/cp_rayon /tmp/ftzz /tmp/ftzzz
8.827 ± 0.796
8.104
10.143
5.482
46.376
1.16 ± 0.15
xcp -r /tmp/ftzz /tmp/ftzzz
13.374 ± 0.149
13.103
13.559
6.218
46.409
1.76 ± 0.17
fcp /tmp/ftzz /tmp/ftzzz
13.459 ± 0.087
13.349
13.636
5.837
68.041
1.77 ± 0.17
sh -c '(cd /tmp/ftzz; tar cf - .) | (mkdir /tmp/ftzzz; cd /tmp/ftzzz; tar xf -)'
23.669 ± 1.371
21.564
25.593
5.858
22.336
3.12 ± 0.35
cp -r /tmp/ftzz /tmp/ftzzz
28.173 ± 0.091
28.047
28.343
2.950
24.495
3.71 ± 0.36
./target/release/cp_stdlib /tmp/ftzz /tmp/ftzzz
28.945 ± 0.121
28.744
29.084
3.394
24.931
3.81 ± 0.37
rsync -rlp --inplace /tmp/ftzz /tmp/ftzzz
89.173 ± 1.821
87.317
94.034
12.557
55.997
11.74 ± 1.16
copy_100_000_files_0_bytes.md
Command
Mean [s]
Min [s]
Max [s]
User [s]
System [s]
Relative
./target/release/cpz /tmp/ftzz /tmp/ftzzz
0.379 ± 0.009
0.373
0.397
0.261
1.910
1.00
./target/release/cp_rayon /tmp/ftzz /tmp/ftzzz
0.487 ± 0.018
0.471
0.535
0.513
2.604
1.28 ± 0.06
fcp /tmp/ftzz /tmp/ftzzz
0.597 ± 0.016
0.581
0.629
0.554
3.073
1.57 ± 0.05
xcp -r /tmp/ftzz /tmp/ftzzz
0.957 ± 0.015
0.939
0.982
0.529
3.295
2.52 ± 0.07
sh -c '(cd /tmp/ftzz; tar cf - .) | (mkdir /tmp/ftzzz; cd /tmp/ftzzz; tar xf -)'
1.302 ± 0.022
1.277
1.332
0.389
1.274
3.43 ± 0.10
cp -r /tmp/ftzz /tmp/ftzzz
1.632 ± 0.023
1.611
1.682
0.277
1.323
4.30 ± 0.11
./target/release/cp_stdlib /tmp/ftzz /tmp/ftzzz
1.730 ± 0.009
1.719
1.750
0.308
1.389
4.56 ± 0.11
rsync -rlp --inplace /tmp/ftzz /tmp/ftzzz
2.838 ± 0.019
2.803
2.864
0.638
2.141
7.49 ± 0.18
copy_100_000_files_0_bytes_0_depth.md
Command
Mean [s]
Min [s]
Max [s]
User [s]
System [s]
Relative
xcp -r /tmp/ftzz /tmp/ftzzz
1.133 ± 0.014
1.109
1.161
0.474
3.606
1.00
fcp /tmp/ftzz /tmp/ftzzz
1.260 ± 0.010
1.247
1.280
0.412
6.386
1.11 ± 0.02
./target/release/cp_rayon /tmp/ftzz /tmp/ftzzz
1.270 ± 0.010
1.256
1.287
0.390
6.620
1.12 ± 0.02
./target/release/cpz /tmp/ftzz /tmp/ftzzz
1.365 ± 0.005
1.357
1.373
0.167
1.171
1.20 ± 0.02
sh -c '(cd /tmp/ftzz; tar cf - .) | (mkdir /tmp/ftzzz; cd /tmp/ftzzz; tar xf -)'
1.406 ± 0.012
1.389
1.428
0.339
1.394
1.24 ± 0.02
cp -r /tmp/ftzz /tmp/ftzzz
1.618 ± 0.012
1.594
1.636
0.255
1.335
1.43 ± 0.02
./target/release/cp_stdlib /tmp/ftzz /tmp/ftzzz
1.735 ± 0.008
1.725
1.751
0.287
1.418
1.53 ± 0.02
rsync -rlp --inplace /tmp/ftzz /tmp/ftzzz
2.157 ± 0.030
2.117
2.216
0.581
2.057
1.90 ± 0.04
copy_100_000_files_0_bytes_5_files_per_dir.md
Command
Mean [s]
Min [s]
Max [s]
User [s]
System [s]
Relative
./target/release/cpz /tmp/ftzz /tmp/ftzzz
0.413 ± 0.013
0.404
0.440
0.318
2.214
1.00
./target/release/cp_rayon /tmp/ftzz /tmp/ftzzz
0.493 ± 0.008
0.484
0.509
0.576
2.661
1.19 ± 0.04
fcp /tmp/ftzz /tmp/ftzzz
0.505 ± 0.009
0.496
0.523
0.672
2.700
1.22 ± 0.05
xcp -r /tmp/ftzz /tmp/ftzzz
0.844 ± 0.033
0.804
0.897
0.723
2.841
2.04 ± 0.10
sh -c '(cd /tmp/ftzz; tar cf - .) | (mkdir /tmp/ftzzz; cd /tmp/ftzzz; tar xf -)'
1.319 ± 0.018
1.297
1.350
0.463
1.371
3.19 ± 0.11
cp -r /tmp/ftzz /tmp/ftzzz
1.737 ± 0.008
1.729
1.757
0.318
1.385
4.20 ± 0.14
./target/release/cp_stdlib /tmp/ftzz /tmp/ftzzz
1.791 ± 0.012
1.767
1.805
0.336
1.419
4.33 ± 0.14
rsync -rlp --inplace /tmp/ftzz /tmp/ftzzz
3.028 ± 0.023
2.991
3.064
0.787
2.217
7.33 ± 0.24
copy_100_000_files_1G_bytes.md
Command
Mean [s]
Min [s]
Max [s]
User [s]
System [s]
Relative
./target/release/cpz /tmp/ftzz /tmp/ftzzz
0.711 ± 0.129
0.618
1.064
0.317
3.421
1.00
./target/release/cp_rayon /tmp/ftzz /tmp/ftzzz
0.819 ± 0.042
0.763
0.878
0.551
4.251
1.15 ± 0.22
fcp /tmp/ftzz /tmp/ftzzz
0.858 ± 0.030
0.811
0.897
0.591
4.541
1.21 ± 0.22
xcp -r /tmp/ftzz /tmp/ftzzz
1.110 ± 0.016
1.079
1.129
0.610
3.930
1.56 ± 0.28
sh -c '(cd /tmp/ftzz; tar cf - .) | (mkdir /tmp/ftzzz; cd /tmp/ftzzz; tar xf -)'
2.437 ± 0.061
2.377
2.565
0.726
2.784
3.43 ± 0.63
cp -r /tmp/ftzz /tmp/ftzzz
2.453 ± 0.016
2.430
2.478
0.289
2.108
3.45 ± 0.63
./target/release/cp_stdlib /tmp/ftzz /tmp/ftzzz
2.550 ± 0.029
2.513
2.616
0.331
2.161
3.59 ± 0.65
rsync -rlp --inplace /tmp/ftzz /tmp/ftzzz
10.653 ± 0.120
10.454
10.842
4.030
6.585
14.99 ± 2.73
copy_100_000_files_1G_bytes_0_depth.md
Command
Mean [s]
Min [s]
Max [s]
User [s]
System [s]
Relative
xcp -r /tmp/ftzz /tmp/ftzzz
1.209 ± 0.020
1.181
1.244
0.524
4.290
1.00
./target/release/cp_rayon /tmp/ftzz /tmp/ftzzz
1.340 ± 0.005
1.334
1.350
0.402
6.999
1.11 ± 0.02
fcp /tmp/ftzz /tmp/ftzzz
1.358 ± 0.015
1.338
1.391
0.432
6.779
1.12 ± 0.02
./target/release/cpz /tmp/ftzz /tmp/ftzzz
2.080 ± 0.012
2.064
2.099
0.206
1.820
1.72 ± 0.03
./target/release/cp_stdlib /tmp/ftzz /tmp/ftzzz
2.371 ± 0.020
2.348
2.408
0.288
2.030
1.96 ± 0.04
sh -c '(cd /tmp/ftzz; tar cf - .) | (mkdir /tmp/ftzzz; cd /tmp/ftzzz; tar xf -)'
2.422 ± 0.026
2.386
2.477
0.638
2.749
2.00 ± 0.04
cp -r /tmp/ftzz /tmp/ftzzz
2.464 ± 0.037
2.432
2.541
0.268
2.133
2.04 ± 0.05
rsync -rlp --inplace /tmp/ftzz /tmp/ftzzz
9.292 ± 0.080
9.164
9.382
3.508
5.456
7.69 ± 0.14
copy_100_000_files_1G_bytes_0_depth_0_entropy.md
Command
Mean [s]
Min [s]
Max [s]
User [s]
System [s]
Relative
xcp -r /tmp/ftzz /tmp/ftzzz
1.200 ± 0.018
1.178
1.230
0.539
4.253
1.00
./target/release/cp_rayon /tmp/ftzz /tmp/ftzzz
1.346 ± 0.010
1.332
1.361
0.407
7.095
1.12 ± 0.02
fcp /tmp/ftzz /tmp/ftzzz
1.409 ± 0.033
1.345
1.451
0.448
6.888
1.17 ± 0.03
./target/release/cpz /tmp/ftzz /tmp/ftzzz
2.086 ± 0.015
2.057
2.104
0.212
1.819
1.74 ± 0.03
cp -r /tmp/ftzz /tmp/ftzzz
2.331 ± 0.019
2.308
2.366
0.275
2.004
1.94 ± 0.03
./target/release/cp_stdlib /tmp/ftzz /tmp/ftzzz
2.364 ± 0.008
2.356
2.380
0.296
2.013
1.97 ± 0.03
sh -c '(cd /tmp/ftzz; tar cf - .) | (mkdir /tmp/ftzzz; cd /tmp/ftzzz; tar xf -)'
2.406 ± 0.034
2.366
2.488
0.628
2.734
2.00 ± 0.04
rsync -rlp --inplace /tmp/ftzz /tmp/ftzzz
9.245 ± 0.059
9.144
9.332
3.526
5.482
7.70 ± 0.13
copy_100_000_files_1G_bytes_5_files_per_dir.md
Command
Mean [s]
Min [s]
Max [s]
User [s]
System [s]
Relative
./target/release/cp_rayon /tmp/ftzz /tmp/ftzzz
0.733 ± 0.028
0.714
0.812
0.598
3.970
1.00
fcp /tmp/ftzz /tmp/ftzzz
0.766 ± 0.027
0.742
0.826
0.695
4.110
1.05 ± 0.05
./target/release/cpz /tmp/ftzz /tmp/ftzzz
0.775 ± 0.063
0.691
0.880
0.385
3.810
1.06 ± 0.10
xcp -r /tmp/ftzz /tmp/ftzzz
1.050 ± 0.025
1.021
1.094
0.745
3.788
1.43 ± 0.07
sh -c '(cd /tmp/ftzz; tar cf - .) | (mkdir /tmp/ftzzz; cd /tmp/ftzzz; tar xf -)'
2.359 ± 0.033
2.324
2.406
0.771
2.752
3.22 ± 0.13
cp -r /tmp/ftzz /tmp/ftzzz
2.506 ± 0.017
2.480
2.526
0.338
2.110
3.42 ± 0.13
./target/release/cp_stdlib /tmp/ftzz /tmp/ftzzz
2.540 ± 0.018
2.501
2.559
0.366
2.116
3.46 ± 0.14
rsync -rlp --inplace /tmp/ftzz /tmp/ftzzz
9.930 ± 0.168
9.748
10.341
4.235
6.487
13.54 ± 0.57
copy_10_000_files_0_bytes.md
Command
Mean [ms]
Min [ms]
Max [ms]
User [ms]
System [ms]
Relative
./target/release/cpz /tmp/ftzz /tmp/ftzzz
33.6 ± 0.4
33.1
34.7
28.8
186.4
1.00
./target/release/cp_rayon /tmp/ftzz /tmp/ftzzz
43.7 ± 0.5
42.9
45.3
55.6
243.4
1.30 ± 0.02
fcp /tmp/ftzz /tmp/ftzzz
45.7 ± 0.7
44.9
48.0
61.5
249.9
1.36 ± 0.03
xcp -r /tmp/ftzz /tmp/ftzzz
78.2 ± 5.3
71.6
96.4
59.0
271.6
2.33 ± 0.16
sh -c '(cd /tmp/ftzz; tar cf - .) | (mkdir /tmp/ftzzz; cd /tmp/ftzzz; tar xf -)'
119.5 ± 1.7
116.7
122.6
44.7
118.7
3.55 ± 0.07
cp -r /tmp/ftzz /tmp/ftzzz
159.8 ± 2.5
156.7
164.3
29.7
126.2
4.75 ± 0.09
./target/release/cp_stdlib /tmp/ftzz /tmp/ftzzz
164.0 ± 1.5
162.2
167.9
31.2
129.0
4.87 ± 0.07
rsync -rlp --inplace /tmp/ftzz /tmp/ftzzz
321.1 ± 3.0
316.5
324.9
73.3
208.2
9.55 ± 0.15
copy_10_000_files_1G_bytes.md
Command
Mean [ms]
Min [ms]
Max [ms]
User [ms]
System [ms]
Relative
./target/release/cpz /tmp/ftzz /tmp/ftzzz
55.0 ± 2.9
52.0
59.7
34.0
313.3
1.00
./target/release/cp_rayon /tmp/ftzz /tmp/ftzzz
66.2 ± 3.7
62.9
72.7
55.6
374.0
1.20 ± 0.09
fcp /tmp/ftzz /tmp/ftzzz
67.9 ± 4.0
63.7
75.4
63.6
380.9
1.23 ± 0.10
xcp -r /tmp/ftzz /tmp/ftzzz
142.2 ± 44.9
93.2
197.6
72.8
379.1
2.59 ± 0.83
cp -r /tmp/ftzz /tmp/ftzzz
231.3 ± 2.5
228.8
235.2
30.9
194.4
4.21 ± 0.23
./target/release/cp_stdlib /tmp/ftzz /tmp/ftzzz
234.7 ± 2.7
231.4
240.0
36.0
192.6
4.27 ± 0.23
sh -c '(cd /tmp/ftzz; tar cf - .) | (mkdir /tmp/ftzzz; cd /tmp/ftzzz; tar xf -)'
676.7 ± 4.2
670.8
683.0
185.0
915.5
12.31 ± 0.66
rsync -rlp --inplace /tmp/ftzz /tmp/ftzzz
2572.6 ± 26.8
2535.0
2626.5
2714.9
1197.5
46.78 ± 2.55
Command
Mean [ms]
Min [ms]
Max [ms]
User [ms]
System [ms]
Relative
./target/release/cp_rayon /tmp/ftzz /tmp/ftzzz
2.7 ± 0.3
2.3
3.7
2.3
5.2
1.00
./target/release/cp_stdlib /tmp/ftzz /tmp/ftzzz
2.7 ± 0.1
2.6
3.3
0.7
1.8
1.01 ± 0.11
fcp /tmp/ftzz /tmp/ftzzz
2.8 ± 0.1
2.5
3.2
2.2
5.4
1.03 ± 0.13
./target/release/cpz /tmp/ftzz /tmp/ftzzz
2.9 ± 0.2
2.6
3.5
1.4
4.8
1.08 ± 0.14
cp -r /tmp/ftzz /tmp/ftzzz
3.4 ± 0.4
3.0
4.0
0.9
2.3
1.26 ± 0.20
xcp -r /tmp/ftzz /tmp/ftzzz
3.6 ± 0.4
3.2
4.6
1.7
3.2
1.33 ± 0.21
sh -c '(cd /tmp/ftzz; tar cf - .) | (mkdir /tmp/ftzzz; cd /tmp/ftzzz; tar xf -)'
9.6 ± 1.4
6.7
10.9
6.6
7.8
3.56 ± 0.64
rsync -rlp --inplace /tmp/ftzz /tmp/ftzzz
47.7 ± 0.1
47.2
48.0
3.2
5.7
17.77 ± 1.96
copy_10_files_1G_bytes.md
Command
Mean [ms]
Min [ms]
Max [ms]
User [ms]
System [ms]
Relative
./target/release/cpz /tmp/ftzz /tmp/ftzzz
1.3 ± 0.2
1.1
2.2
0.8
2.1
1.00
fcp /tmp/ftzz /tmp/ftzzz
1.5 ± 0.1
1.3
1.9
1.1
3.1
1.11 ± 0.15
./target/release/cp_rayon /tmp/ftzz /tmp/ftzzz
1.9 ± 0.2
1.5
7.6
1.4
3.9
1.39 ± 0.23
cp -r /tmp/ftzz /tmp/ftzzz
1.9 ± 0.4
1.6
2.7
0.5
1.3
1.40 ± 0.31
./target/release/cp_stdlib /tmp/ftzz /tmp/ftzzz
3.0 ± 0.1
2.8
3.2
0.7
2.1
2.23 ± 0.26
xcp -r /tmp/ftzz /tmp/ftzzz
3.4 ± 0.4
2.7
11.4
1.8
3.6
2.55 ± 0.40
sh -c '(cd /tmp/ftzz; tar cf - .) | (mkdir /tmp/ftzzz; cd /tmp/ftzzz; tar xf -)'
304.3 ± 14.9
297.9
346.4
83.4
449.5
225.47 ± 27.89
rsync -rlp --inplace /tmp/ftzz /tmp/ftzzz
1042.4 ± 1.7
1040.5
1045.6
1529.1
350.0
772.37 ± 87.80