Table of Contents

The main difference between XZ compression and Gzip compression is in the compression algorithms they use. XZ compression is based on the LZMA2 algorithm, which is designed to achieve very high compression ratios. Gzip compression, on the other hand, uses the Deflate algorithm, which is designed to achieve better compression speeds.

Another difference is that XZ compression is usually more efficient than Gzip in terms of file size when compressing larger files. This is because the XZ compression algorithm is designed to detect and store repeating patterns more efficiently. Gzip, on the other hand, is better suited for compressing smaller files, as the Deflate algorithm is faster and more efficient in these cases.

Kernel compression methods and comparisons: GZIP, bzip2, LZMA, XZ, LZO,LZ4,ZSTD

Size

ls -s bzImage 

XZ:

4276 bzImage

LZO:

5988 arch/x86/boot/bzImage

LZMA:

4584 arch/x86/boot/bzImage

Compressing root build directory:

[easto@cupcake][/opt/snacklinux_rootfs]$ find . -print | cpio -o -H newc --quiet | gzip -9 > rootfs.gz
cpio: File ./rootfs.gz grew, 1048576 new bytes not copied
[easto@cupcake][/opt/snacklinux_rootfs]$ ls -s rootfs.gz 
7812 rootfs.gz
[easto@cupcake][/opt/snacklinux_rootfs]$ find . -print | cpio -o -H newc --quiet | gzip > rootfs.gz
cpio: File ./rootfs.gz grew, 1064960 new bytes not copied
[easto@cupcake][/opt/snacklinux_rootfs]$ ls -s rootfs.gz 
7852 rootfs.gz

Speed:

[easto@cupcake][~/snacklinux]$ cd /opt/snacklinux_rootfs/; time find . -print | cpio -o -H newc --quiet | gzip > /home/easto/snacklinux/rootfs.gz

real    0m0.661s
user    0m0.607s
sys     0m0.052s
[easto@cupcake][/opt/snacklinux_rootfs]$ cd /opt/snacklinux_rootfs/; time find . -print | cpio -o -H newc --quiet | xz > /home/easto/snacklinux/rootfs.xz

real    0m4.697s
user    0m4.521s
sys     0m0.162s