[OE-core] [PATCH] Set XZ_COMPRESSION_LEVEL to -9

Andre McCurdy armccurdy at gmail.com
Fri Apr 12 21:44:05 UTC 2019


On Fri, Apr 12, 2019 at 2:09 PM Adrian Bunk <bunk at stusta.de> wrote:
>
> It is consistent with other compressors also using their
> best compression.
>
> xz is currently the option that offers best compression,
> using settings even lower than the default is surprising
> and makes it harder to choose the best available compression.
>
> For anyone who cares about compression time using a different
> option like gzip or bzip2 is the logical choice.

The concern with xz's highest compression level is memory usage rather
than CPU time. Quoting from the manpage:

  Preset   DictSize   CompCPU    CompMem   DecMem
    -0     256 KiB     0      3 MiB    1 MiB
    -1       1 MiB     1      9 MiB    2 MiB
    -2       2 MiB     2     17 MiB    3 MiB
    -3       4 MiB     3     32 MiB    5 MiB
    -4       4 MiB     4     48 MiB    5 MiB
    -5       8 MiB     5     94 MiB    9 MiB
    -6       8 MiB     6     94 MiB    9 MiB
    -7      16 MiB     6    186 MiB   17 MiB
    -8      32 MiB     6    370 MiB   33 MiB
    -9      64 MiB     6    674 MiB   65 MiB

Given that these are per-thread the memory requirements may start to
get a little unreasonable with xz -9. We do limit usage to 50% of
physical memory via XZ_DEFAULTS though so maybe it's not a big
concern?

Either way, perhaps now would be a good time to remove
XZ_COMPRESSION_LEVEL from image_types.bbclass and instead just include
the compression level option in XZ_DEFAULTS so that it gets used
consistently everywhere.

> For decompression, better compressed is actually faster
> to decompress.
>
> Signed-off-by: Adrian Bunk <bunk at stusta.de>
> ---
>  meta/classes/image_types.bbclass | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/meta/classes/image_types.bbclass b/meta/classes/image_types.bbclass
> index 95aa1674cf..1c44ec4a80 100644
> --- a/meta/classes/image_types.bbclass
> +++ b/meta/classes/image_types.bbclass
> @@ -54,7 +54,7 @@ def imagetypes_getdepends(d):
>      # Sort the set so that ordering is consistant
>      return " ".join(sorted(deps))
>
> -XZ_COMPRESSION_LEVEL ?= "-3"
> +XZ_COMPRESSION_LEVEL ?= "-9"
>  XZ_INTEGRITY_CHECK ?= "crc32"
>
>  ZIP_COMPRESSION_LEVEL ?= "-9"
> --
> 2.17.1
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core


More information about the Openembedded-core mailing list