I/O benchmark
I/O benchmark for different image processing python libraries.
The code is inspired by the benchmark code of Alex Parinov for the albumentations library.
https://github.com/albu/albumentations/blob/master/benchmark/benchmark.py
The idea is inspired by the work of Roman Soloviov:
https://www.kaggle.com/zfturbo/benchmark-2019-speed-of-image-reading
Installation
sudo apt install libturbojpeg libvips-dev
You can use pip to install imread_benchmark
:
pip install imread_benchmark
If you want to get the latest version of the code before it is released on PyPI you can install the library from GitHub:
pip install -U git+https://github.com/ternaus/imread_benchmark
To calculate the I/O speed of your SSD/HDD in Linux
sudo apt-get install hdparm
sudo hdparm -Tt <disk_id>
where disk_id
is of the type /dev/sda
As a result you may expect something like:
/dev/sda:
Timing cached reads: 26114 MB in 1.99 seconds = 13122.03 MB/sec
Timing buffered disk reads: 1062 MB in 3.00 seconds = 353.70 MB/sec
To run the benchmark
To get the description of all input parameters
imread_benchmark -h
imread_benchmark -d <path to images> \
-i <number of images to use> \
-r <number of repeats>
Extra options:
-p
- to print benchmarked libraries versions
-s
- to shuffle images on every run
--show-std
- to show standard deviation for measurements
Libraries that are benchmarked:
- OpenCV
- pillow-simd (PIL-SIMD)
- jpeg4py
- scikit-image (skimage)
- imageio
- pyvips