Skip to content

Instantly share code, notes, and snippets.

@iAnanich
Forked from mosquito/aiofile.ipynb
Last active September 30, 2024 21:59
Show Gist options
  • Save iAnanich/6dcb446575d26cd158440d4051f9eaf5 to your computer and use it in GitHub Desktop.
Save iAnanich/6dcb446575d26cd158440d4051f9eaf5 to your computer and use it in GitHub Desktop.
aiofile Benchmark
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
chunk size chunk count AIO writer test AIO reader test Thread writer test Thread reader test
1048576 200 300 ms ± 4.46 ms per loop 283 ms ± 2.57 ms per loop 296 ms ± 15.1 ms per loop 288 ms ± 13.7 ms per loop
1048576 100 156 ms ± 8.59 ms per loop 141 ms ± 527 μs per loop 138 ms ± 3.18 ms per loop 141 ms ± 1.29 ms per loop
327680 100 58.1 ms ± 1.03 ms per loop 45.5 ms ± 217 μs per loop 56.7 ms ± 2.69 ms per loop 54.7 ms ± 2.24 ms per loop
32768 1000 71.2 ms ± 1.01 ms per loop 60.5 ms ± 228 μs per loop 54.8 ms ± 3.22 ms per loop 57.9 ms ± 2.01 ms per loop
1024 100 3.53 ms ± 93.6 μs per loop 2.01 ms ± 38.3 μs per loop 532 μs ± 65.7 μs per loop 486 μs ± 4.32 μs per loop
CPU: AMD Ryzen 3600
SSD: Samsung 980 500GB
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Python 3.12.3
aiofile Version: 3.8.8
type(loop)=<class 'asyncio.unix_events._UnixSelectorEventLoop'>
====================================================================================================
CHUNK_SIZE=327680
CHUNK_COUNT=100
len(PAYLOAD)=32768000
==================
==================
Thread writer test
56.7 ms ± 2.69 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)
==================
==================
Thread reader test
54.7 ms ± 2.24 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)
==================
==================
AIO writer test
58.1 ms ± 1.03 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)
==================
==================
AIO reader test
45.5 ms ± 217 μs per loop (mean ± std. dev. of 7 runs, 10 loops each)
==================
====================================================================================================
CHUNK_SIZE=1024
CHUNK_COUNT=100
len(PAYLOAD)=102400
==================
==================
Thread writer test
532 μs ± 65.7 μs per loop (mean ± std. dev. of 7 runs, 1,000 loops each)
==================
==================
Thread reader test
486 μs ± 4.32 μs per loop (mean ± std. dev. of 7 runs, 1,000 loops each)
==================
==================
AIO writer test
3.53 ms ± 93.6 μs per loop (mean ± std. dev. of 7 runs, 100 loops each)
==================
==================
AIO reader test
2.01 ms ± 38.3 μs per loop (mean ± std. dev. of 7 runs, 100 loops each)
==================
====================================================================================================
CHUNK_SIZE=32768
CHUNK_COUNT=1000
len(PAYLOAD)=32768000
==================
==================
Thread writer test
54.8 ms ± 3.22 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)
==================
==================
Thread reader test
57.9 ms ± 2.01 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)
==================
==================
AIO writer test
71.2 ms ± 1.01 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)
==================
==================
AIO reader test
60.5 ms ± 228 μs per loop (mean ± std. dev. of 7 runs, 10 loops each)
==================
====================================================================================================
CHUNK_SIZE=1048576
CHUNK_COUNT=100
len(PAYLOAD)=104857600
==================
==================
Thread writer test
138 ms ± 3.18 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)
==================
==================
Thread reader test
141 ms ± 1.29 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)
==================
==================
AIO writer test
156 ms ± 8.59 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
==================
==================
AIO reader test
141 ms ± 527 μs per loop (mean ± std. dev. of 7 runs, 10 loops each)
==================
====================================================================================================
CHUNK_SIZE=1048576
CHUNK_COUNT=200
len(PAYLOAD)=209715200
==================
==================
Thread writer test
296 ms ± 15.1 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
==================
==================
Thread reader test
288 ms ± 13.7 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
==================
==================
AIO writer test
300 ms ± 4.46 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
==================
==================
AIO reader test
283 ms ± 2.57 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
==================
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment