PGO xz

Hi,

i’ve build xz with PGO (Profile-guided optimization - Wikipedia) on x86_64. Here are some results:

default xz build
decompression

time xz -vd linux-5.0.5.tar.xz
linux-5.0.5.tar.xz (1/1)
100 % 100,4 MiB / 823,4 MiB = 0,122 96 MiB/s 0:08
real 0m8,614s
user 0m7,708s
sys 0m0,576s

time xz -vd linux-5.0.5.tar.xz
linux-5.0.5.tar.xz (1/1)
100 % 100,4 MiB / 823,4 MiB = 0,122 91 MiB/s 0:09

real 0m9,062s
user 0m7,960s
sys 0m0,658s

compression

time xz -v linux-5.0.5.tar
linux-5.0.5.tar (1/1)
100 % 104,5 MiB / 823,4 MiB = 0,127 4,2 MiB/s 3:17

real 3m17,775s
user 5m21,996s
sys 0m0,874s

PGO xz build
decompression

time xz -vd linux-5.0.5.tar.xz
linux-5.0.5.tar.xz (1/1)
100 % 100,4 MiB / 823,4 MiB = 0,122 106 MiB/s 0:07

real 0m7,778s
user 0m6,929s
sys 0m0,549s

time xz -vd linux-5.0.5.tar.xz
linux-5.0.5.tar.xz (1/1)
100 % 100,4 MiB / 823,4 MiB = 0,122 104 MiB/s 0:07

real 0m7,909s
user 0m6,964s
sys 0m0,547s

compression

time xz -v linux-5.0.5.tar
linux-5.0.5.tar (1/1)
100 % 104,5 MiB / 823,4 MiB = 0,127 4,5 MiB/s 3:04

real 3m4,707s
user 4m58,532s
sys 0m0,745s

2 Likes

Here are some further news.
zlib, bzip2, libpng, mozjpeg are compiled with PGO support.

Next packages on the list:
pixman, libxml2, openssl, zstd, opencv

Needs investigation:
python, python2 these are already compiled with PGO by using upstream’s configure option --enable-optimizations but these does not work imho

Latest news.

PGO enabled builds:
pixman, libxml2, openssl, zstd, python, lua

Work in progress
python2, opencv, perl