Hello again,

after archange and Baptiste mentioned that the numbers look a little odd, I 
took some more time and re-ran the tests with additional parameters.
Most notably, this includes -T2 - to show behavior on lower-spec machines, and 
it fixes the higher compression levels by appending --ultra.

Here are the new results:

Compressor                 Package Name   Size (MiB)  Comp. Size (MiB)  Ratio   
Time (mm:ss)  Max. RSS in MiB  Decomp. Time (mm:ss)  Decomp. RSS in MiB
xz -c -z -                 cuda           3038,58     1316,93           43,34%  
19:03.44      95,32            1:19.74               10,18
zstd -c -T2 -18 -          cuda           3038,58     1375,41           45,26%  
7:10.76       373,53           0:04.49               10,70
zstd -c -T0 -18 -          cuda           3038,58     1375,41           45,26%  
1:17.23       2646,19          0:04.41               10,76
zstd -c -T2 -19 -          cuda           3038,58     1371,94           45,15%  
9:08.09       420,43           0:04.43               10,68
zstd -c -T0 -19 -          cuda           3038,58     1371,94           45,15%  
1:34.74       3415,77          0:04.51               10,75
zstd -c -T2 --ultra -20 -  cuda           3038,58     1286,91           42,35%  
10:05.19      1255,64          0:04.46               34,78
zstd -c -T0 --ultra -20 -  cuda           3038,58     1286,91           42,35%  
1:57.94       8192,42          0:04.43               34,76
zstd -c -T2 --ultra -21 -  cuda           3038,58     1141,94           37,58%  
10:37.84      2404,56          0:04.11               66,73
zstd -c -T0 --ultra -21 -  cuda           3038,58     1141,94           37,58%  
2:58.45       8035,52          0:04.08               66,77
xz -c -z -                 gcc            135,54      33,11             24,43%  
0:54.54       95,34            0:02.59               10,11
zstd -c -T2 -18 -          gcc            135,54      35,87             26,47%  
0:23.39       255,13           0:00.27               10,76
zstd -c -T0 -18 -          gcc            135,54      35,87             26,47%  
0:12.42       419,35           0:00.24               10,81
zstd -c -T2 -19 -          gcc            135,54      35,66             26,31%  
0:30.34       319,03           0:00.24               10,45
zstd -c -T0 -19 -          gcc            135,54      35,66             26,31%  
0:16.07       579,00           0:00.24               10,73
zstd -c -T2 --ultra -20 -  gcc            135,54      24,38             17,99%  
0:51.69       484,32           0:00.20               34,63
zstd -c -T0 --ultra -20 -  gcc            135,54      24,38             17,99%  
0:51.79       484,66           0:00.20               34,73
zstd -c -T2 --ultra -21 -  gcc            135,54      22,89             16,89%  
1:10.22       481,77           0:00.22               66,71
zstd -c -T0 --ultra -21 -  gcc            135,54      22,89             16,89%  
1:10.39       482,17           0:00.21               66,65
xz -c -z -                 go             484,10      122,10            25,22%  
3:19.11       95,35            0:08.78               10,16
zstd -c -T2 -18 -          go             484,10      132,69            27,41%  
1:20.42       292,36           0:00.78               10,75
zstd -c -T0 -18 -          go             484,10      132,69            27,41%  
0:15.42       1402,87          0:00.78               10,79
zstd -c -T2 -19 -          go             484,10      131,84            27,23%  
1:46.85       352,77           0:00.79               10,75
zstd -c -T0 -19 -          go             484,10      131,84            27,23%  
0:20.13       1914,13          0:00.80               10,75
zstd -c -T2 --ultra -20 -  go             484,10      121,87            25,17%  
1:58.00       879,29           0:00.83               34,68
zstd -c -T0 --ultra -20 -  go             484,10      121,87            25,17%  
1:07.37       1252,75          0:00.84               34,71
zstd -c -T2 --ultra -21 -  go             484,10      112,18            23,17%  
2:09.79       1240,84          0:00.82               66,73
zstd -c -T0 --ultra -21 -  go             484,10      112,18            23,17%  
2:09.70       1241,08          0:00.81               66,80
xz -c -z -                 intellij-*     772,46      384,37            49,76%  
4:53.01       95,31            0:28.69               10,18
zstd -c -T2 -18 -          intellij-*     772,46      392,44            50,80%  
1:51.91       342,91           0:00.94               10,71
zstd -c -T0 -18 -          intellij-*     772,46      392,44            50,80%  
0:20.50       2341,05          0:00.93               10,70
zstd -c -T2 -19 -          intellij-*     772,46      391,04            50,62%  
2:40.44       407,06           0:00.94               10,82
zstd -c -T0 -19 -          intellij-*     772,46      391,04            50,62%  
0:28.37       3107,88          0:00.95               10,76
zstd -c -T2 --ultra -20 -  intellij-*     772,46      380,38            49,24%  
3:19.46       1182,29          0:01.04               34,73
zstd -c -T0 --ultra -20 -  intellij-*     772,46      380,38            49,24%  
1:28.10       2282,25          0:01.03               34,72
zstd -c -T2 --ultra -21 -  intellij-*     772,46      374,19            48,44%  
4:07.18       1788,19          0:01.06               66,81
zstd -c -T0 --ultra -21 -  intellij-*     772,46      374,19            48,44%  
2:31.77       2433,28          0:01.04               66,73
xz -c -z -                 linux          80,15       70,66             88,17%  
0:31.27       95,35            0:03.85               10,11
zstd -c -T2 -18 -          linux          80,15       70,22             87,62%  
0:09.94       250,32           0:00.06               10,56
zstd -c -T0 -18 -          linux          80,15       70,22             87,62%  
0:07.52       299,25           0:00.06               10,72
zstd -c -T2 -19 -          linux          80,15       70,18             87,56%  
0:12.90       314,25           0:00.05               10,57
zstd -c -T0 -19 -          linux          80,15       70,18             87,56%  
0:09.32       395,17           0:00.06               10,71
zstd -c -T2 --ultra -20 -  linux          80,15       70,18             87,56%  
0:22.64       313,47           0:00.08               34,61
zstd -c -T0 --ultra -20 -  linux          80,15       70,18             87,56%  
0:22.69       313,82           0:00.08               34,68
zstd -c -T2 --ultra -21 -  linux          80,15       70,17             87,55%  
0:27.01       473,56           0:00.09               66,64
zstd -c -T0 --ultra -21 -  linux          80,15       70,17             87,55%  
0:26.97       473,89           0:00.09               66,71
xz -c -z -                 linux-headers  103,85      17,02             16,39%  
0:42.24       95,35            0:01.45               10,15
zstd -c -T2 -18 -          linux-headers  103,85      18,92             18,22%  
0:19.51       218,35           0:00.17               10,48
zstd -c -T0 -18 -          linux-headers  103,85      18,92             18,22%  
0:12.74       320,92           0:00.17               10,47
zstd -c -T2 -19 -          linux-headers  103,85      18,88             18,18%  
0:24.42       282,43           0:00.16               10,67
zstd -c -T0 -19 -          linux-headers  103,85      18,88             18,18%  
0:16.28       448,92           0:00.17               10,59
zstd -c -T2 --ultra -20 -  linux-headers  103,85      18,77             18,08%  
0:43.86       286,13           0:00.19               34,74
zstd -c -T0 --ultra -20 -  linux-headers  103,85      18,77             18,08%  
0:44.00       286,32           0:00.19               34,79
zstd -c -T2 --ultra -21 -  linux-headers  103,85      18,70             18,00%  
1:03.41       445,96           0:00.20               66,61
zstd -c -T0 --ultra -21 -  linux-headers  103,85      18,70             18,00%  
1:03.29       446,32           0:00.20               66,66
xz -c -z -                 tensorflow     303,10      55,58             18,34%  
1:59.56       95,40            0:04.78               10,27
zstd -c -T2 -18 -          tensorflow     303,10      61,83             20,40%  
0:54.04       277,06           0:00.48               10,72
zstd -c -T0 -18 -          tensorflow     303,10      61,83             20,40%  
0:15.64       856,86           0:00.47               10,61
zstd -c -T2 -19 -          tensorflow     303,10      61,49             20,29%  
1:15.56       340,99           0:00.48               10,75
zstd -c -T0 -19 -          tensorflow     303,10      61,49             20,29%  
0:20.82       1176,75          0:00.49               10,68
zstd -c -T2 --ultra -20 -  tensorflow     303,10      60,63             20,00%  
1:30.19       678,34           0:00.53               34,67
zstd -c -T0 --ultra -20 -  tensorflow     303,10      60,63             20,00%  
1:11.32       849,60           0:00.54               34,68
zstd -c -T2 --ultra -21 -  tensorflow     303,10      59,98             19,79%  
2:42.81       1007,56          0:00.54               66,47
zstd -c -T0 --ultra -21 -  tensorflow     303,10      59,98             19,79%  
2:43.03       1007,95          0:00.55               66,70


The new results show that -20 is actually more beneficial for our goals, as it:
- Actually reduces the size compared to xz more often
- While not as fast, still beats xz in compression time
- Only increases the decompressor memory usage negligibly
- Maintains similar decompression speed to the other levels

TL;DR:
Benefits:
- Faster
- Often smaller or similar to xz in size, an improvement over -18 either way
- Still reproducible :)

Trade-offs:
- Minimal increase in decompressor memory usage, but we're talking 50 MiB here.
- Increase in memory usage during compression, however the important part is 
that memory usage scales with the amount of threads used.

Given that low-end systems can simply change the thread allocation to 1 or 2 to 
slash the compressor memory usage as a trade-off on speed,
i don't think that is a problem.

New changeset:
PKGEXT='.pkg.tar.zst'
COMPRESSZST=(zstd -c -T0 -20 -)


This would hopefully address the concerns over the filesize increase, while 
still maintaining most of the benefits.


Regards,
Rob (coderobe)

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to