Hi,

I did some testing on !x86. I changed LZMA_RANGE_DECODER_CONFIG to
different values run a test and looked at the MiB/s value. xz_0 means
LZMA_RANGE_DECODER_CONFIG was 0, xz_1 means the define was set to 1. I
touched src/liblzma/lzma/lzma_decoder.c and rebuilt xz. I pinned the
shell to a single CPU and run test for archive (-tv) for one file three
times. This are the results:

arm64 (Lenovo HR350A):
----=== xz 5.4.1 ===----
linux-6.7.5.tar.xz (1/1)
  100 %     134.9 MiB / 1,386.4 MiB = 0.097   110 MiB/s       0:12
linux-6.7.5.tar.xz (1/1)
  100 %     134.9 MiB / 1,386.4 MiB = 0.097   110 MiB/s       0:12
linux-6.7.5.tar.xz (1/1)
  100 %     134.9 MiB / 1,386.4 MiB = 0.097   110 MiB/s       0:12
----============----
----=== ./xz_0 ===----
linux-6.7.5.tar.xz (1/1)
  100 %     134.9 MiB / 1,386.4 MiB = 0.097   115 MiB/s       0:12
linux-6.7.5.tar.xz (1/1)
  100 %     134.9 MiB / 1,386.4 MiB = 0.097   115 MiB/s       0:12
linux-6.7.5.tar.xz (1/1)
  100 %     134.9 MiB / 1,386.4 MiB = 0.097   115 MiB/s       0:12
----============----
----=== ./xz_1 ===----
linux-6.7.5.tar.xz (1/1)
  100 %     134.9 MiB / 1,386.4 MiB = 0.097   108 MiB/s       0:12
linux-6.7.5.tar.xz (1/1)
  100 %     134.9 MiB / 1,386.4 MiB = 0.097   108 MiB/s       0:12
linux-6.7.5.tar.xz (1/1)
  100 %     134.9 MiB / 1,386.4 MiB = 0.097   108 MiB/s       0:12
----============----
----=== ./xz_3 ===----
linux-6.7.5.tar.xz (1/1)
  100 %     134.9 MiB / 1,386.4 MiB = 0.097   109 MiB/s       0:12
linux-6.7.5.tar.xz (1/1)
  100 %     134.9 MiB / 1,386.4 MiB = 0.097   109 MiB/s       0:12
linux-6.7.5.tar.xz (1/1)
  100 %     134.9 MiB / 1,386.4 MiB = 0.097   109 MiB/s       0:12
----============----
----=== ./xz_7 ===----
linux-6.7.5.tar.xz (1/1)
  100 %     134.9 MiB / 1,386.4 MiB = 0.097   109 MiB/s       0:12
linux-6.7.5.tar.xz (1/1)
  100 %     134.9 MiB / 1,386.4 MiB = 0.097   109 MiB/s       0:12
linux-6.7.5.tar.xz (1/1)
  100 %     134.9 MiB / 1,386.4 MiB = 0.097   109 MiB/s       0:12
----============----
----=== ./xz_f ===----
linux-6.7.5.tar.xz (1/1)
  100 %     134.9 MiB / 1,386.4 MiB = 0.097   107 MiB/s       0:12
linux-6.7.5.tar.xz (1/1)
  100 %     134.9 MiB / 1,386.4 MiB = 0.097   107 MiB/s       0:12
linux-6.7.5.tar.xz (1/1)
  100 %     134.9 MiB / 1,386.4 MiB = 0.097   107 MiB/s       0:12
----============----


RiscV (HiFive Unmatched)
----=== xz 5.4.5 ===----
linux-6.7.5.tar.xz (1/1)
  100 %     134,9 MiB / 1.386,4 MiB = 0,097    30 MiB/s       0:45
linux-6.7.5.tar.xz (1/1)
  100 %     134,9 MiB / 1.386,4 MiB = 0,097    30 MiB/s       0:46
linux-6.7.5.tar.xz (1/1)
  100 %     134,9 MiB / 1.386,4 MiB = 0,097    30 MiB/s       0:45
----============----
----=== ./xz_0 ===----
linux-6.7.5.tar.xz (1/1)
  100 %     134,9 MiB / 1.386,4 MiB = 0,097    32 MiB/s       0:43
linux-6.7.5.tar.xz (1/1)
  100 %     134,9 MiB / 1.386,4 MiB = 0,097    32 MiB/s       0:43
linux-6.7.5.tar.xz (1/1)
  100 %     134,9 MiB / 1.386,4 MiB = 0,097    32 MiB/s       0:43
----============----
----=== ./xz_1 ===----
linux-6.7.5.tar.xz (1/1)
  100 %     134,9 MiB / 1.386,4 MiB = 0,097    31 MiB/s       0:44
linux-6.7.5.tar.xz (1/1)
  100 %     134,9 MiB / 1.386,4 MiB = 0,097    31 MiB/s       0:44
linux-6.7.5.tar.xz (1/1)
  100 %     134,9 MiB / 1.386,4 MiB = 0,097    31 MiB/s       0:44
----============----
----=== ./xz_3 ===----
linux-6.7.5.tar.xz (1/1)
  100 %     134,9 MiB / 1.386,4 MiB = 0,097    30 MiB/s       0:45
linux-6.7.5.tar.xz (1/1)
  100 %     134,9 MiB / 1.386,4 MiB = 0,097    31 MiB/s       0:45
linux-6.7.5.tar.xz (1/1)
  100 %     134,9 MiB / 1.386,4 MiB = 0,097    31 MiB/s       0:45
----============----
----=== ./xz_7 ===----
linux-6.7.5.tar.xz (1/1)
  100 %     134,9 MiB / 1.386,4 MiB = 0,097    31 MiB/s       0:45
linux-6.7.5.tar.xz (1/1)
  100 %     134,9 MiB / 1.386,4 MiB = 0,097    31 MiB/s       0:44
linux-6.7.5.tar.xz (1/1)
  100 %     134,9 MiB / 1.386,4 MiB = 0,097    31 MiB/s       0:44
----============----
----=== ./xz_f ===----
linux-6.7.5.tar.xz (1/1)
  100 %     134,9 MiB / 1.386,4 MiB = 0,097    30 MiB/s       0:46
linux-6.7.5.tar.xz (1/1)
  100 %     134,9 MiB / 1.386,4 MiB = 0,097    30 MiB/s       0:45
linux-6.7.5.tar.xz (1/1)
  100 %     134,9 MiB / 1.386,4 MiB = 0,097    30 MiB/s       0:45
----============----

Based on this it looks like the `0' variant is the best one. Is my test
too simple and does not cover "everything / wide range of decodings"?

Sebastian

Reply via email to