python3
is available when python
is run.
sudo apt install python-is-python3 -y
The previous section explained how to build the Cloudflare zlib
which includes the use of crc32
instructions to improve performance on data compression.
Use a Python example and measure the performance difference with zlib-cloudflare
.
Use a text editor to copy and save the code below in a file named zip.py
import gzip
size = 16384
with open('largefile', 'rb') as f_in:
with gzip.open('largefile.gz', 'wb') as f_out:
while (data := f_in.read(size)):
f_out.write(data)
f_out.close()
The above Python code will read a file named largefile
and write a compressed version as largefile.gz
To create the input file, use the dd
command.
dd if=/dev/zero of=largefile count=1M bs=1024
Run with the default zlib
and time the execution.
time python ./zip.py
Make a note of how many seconds the program took.
This time, use LD_PRELOAD
to change to zlib-cloudflare
instead and check the performance difference.
Adjust the path to libz.so
as needed.
time LD_PRELOAD=/usr/local/lib/libz.so python ./zip.py
Notice the time saved using zlib-cloudflare
.
The next section introduces how to use Linux perf
to profile applications and look for zlib
activity.