Skip to content

Instantly share code, notes, and snippets.

@jbosboom
Created September 20, 2025 08:23
Show Gist options
  • Select an option

  • Save jbosboom/020cb7a5b7241b61e796928850348a72 to your computer and use it in GitHub Desktop.

Select an option

Save jbosboom/020cb7a5b7241b61e796928850348a72 to your computer and use it in GitHub Desktop.
#!/bin/bash
python -m pyperf timeit --append "bench-$$.json" --affinity 0 --rigorous \
--name stat \
-s 'import os' \
'os.stat(".")'
python -m pyperf timeit --append "bench-$$.json" --affinity 0 --rigorous \
--name stat-size-mtimens \
-s 'import os' \
'r = os.stat(".")' 'r.st_size' 'r.st_mtime_ns'
python -m pyperf timeit --append "bench-$$.json" --affinity 0 --rigorous \
--name stat-all \
-s 'import os' \
'r = os.stat(".")' 'r.st_atime' 'r.st_atime_ns' 'r.st_blksize' 'r.st_blocks' 'r.st_ctime' 'r.st_ctime_ns' 'r.st_dev' 'r.st_gid' 'r.st_ino' 'r.st_mode' 'r.st_mtime' 'r.st_mtime_ns' 'r.st_nlink' 'r.st_rdev' 'r.st_size' 'r.st_uid'
python -m pyperf timeit --append "bench-$$.json" --affinity 0 --rigorous \
--name statx-nothing \
-s 'import os' -s 'm = 0' \
'os.statx(".", m)'
python -m pyperf timeit --append "bench-$$.json" --affinity 0 --rigorous \
--name statx-sizemtime \
-s 'import os' -s 'm = os.STATX_SIZE | os.STATX_MTIME' \
'os.statx(".", m)'
python -m pyperf timeit --append "bench-$$.json" --affinity 0 --rigorous \
--name statx-sizemtime-size-mtimens \
-s 'import os' -s 'm = os.STATX_SIZE | os.STATX_MTIME' \
'r = os.statx(".", m)' 'r.st_size' 'r.st_mtime_ns'
python -m pyperf timeit --append "bench-$$.json" --affinity 0 --rigorous \
--name statx-sizemtime-mask-size-mtimens \
-s 'import os' -s 'm = os.STATX_SIZE | os.STATX_MTIME' \
'r = os.statx(".", m)' 'r.stx_mask' 'r.st_size' 'r.st_mtime_ns'
python -m pyperf timeit --append "bench-$$.json" --affinity 0 --rigorous \
--name statx-basic \
-s 'import os' -s 'm = os.STATX_BASIC_STATS' \
'os.statx(".", m)'
python -m pyperf timeit --append "bench-$$.json" --affinity 0 --rigorous \
--name statx-basic-size-mtimens \
-s 'import os' -s 'm = os.STATX_BASIC_STATS' \
'r = os.statx(".", m)' 'r.st_size' 'r.st_mtime_ns'
python -m pyperf timeit --append "bench-$$.json" --affinity 0 --rigorous \
--name statx-basic-mask-size-mtimens \
-s 'import os' -s 'm = os.STATX_BASIC_STATS' \
'r = os.statx(".", m)' 'r.stx_mask' 'r.st_size' 'r.st_mtime_ns'
python -m pyperf timeit --append "bench-$$.json" --affinity 0 --rigorous \
--name statx-basic-all \
-s 'import os' -s 'm = os.STATX_BASIC_STATS' \
'r = os.statx(".", m)' 'r.stx_mask' 'r.st_atime' 'r.st_atime_ns' 'r.st_blksize' 'r.st_blocks' 'r.st_ctime' 'r.st_ctime_ns' 'r.st_dev' 'r.st_gid' 'r.st_ino' 'r.st_mode' 'r.st_mtime' 'r.st_mtime_ns' 'r.st_nlink' 'r.st_rdev' 'r.st_size' 'r.st_uid'
python -m pyperf timeit --append "bench-$$.json" --affinity 0 --rigorous \
--name statx-everything \
-s 'import os' -s 'm = os.STATX_BASIC_STATS | os.STATX_BTIME | os.STATX_MNT_ID | os.STATX_DIOALIGN | os.STATX_MNT_ID_UNIQUE | os.STATX_SUBVOL | os.STATX_WRITE_ATOMIC | os.STATX_DIO_READ_ALIGN' \
'os.statx(".", m)'
python -m pyperf timeit --append "bench-$$.json" --affinity 0 --rigorous \
--name statx-everything-size-mtimens \
-s 'import os' -s 'm = os.STATX_BASIC_STATS | os.STATX_BTIME | os.STATX_MNT_ID | os.STATX_DIOALIGN | os.STATX_MNT_ID_UNIQUE | os.STATX_SUBVOL | os.STATX_WRITE_ATOMIC | os.STATX_DIO_READ_ALIGN' \
'r = os.statx(".", m)' 'r.st_size' 'r.st_mtime_ns'
python -m pyperf timeit --append "bench-$$.json" --affinity 0 --rigorous \
--name statx-everything-mask-size-mtimens \
-s 'import os' -s 'm = os.STATX_BASIC_STATS | os.STATX_BTIME | os.STATX_MNT_ID | os.STATX_DIOALIGN | os.STATX_MNT_ID_UNIQUE | os.STATX_SUBVOL | os.STATX_WRITE_ATOMIC | os.STATX_DIO_READ_ALIGN' \
'r = os.statx(".", m)' 'r.stx_mask' 'r.st_size' 'r.st_mtime_ns'
python -m pyperf timeit --append "bench-$$.json" --affinity 0 --rigorous \
--name statx-everything-all \
-s 'import os' -s 'm = os.STATX_BASIC_STATS | os.STATX_BTIME | os.STATX_MNT_ID | os.STATX_DIOALIGN | os.STATX_MNT_ID_UNIQUE | os.STATX_SUBVOL | os.STATX_WRITE_ATOMIC | os.STATX_DIO_READ_ALIGN' \
'r = os.statx(".", m)' 'r.st_atime' 'r.st_atime_ns' 'r.st_birthtime' 'r.st_birthtime_ns' 'r.st_blksize' 'r.st_blocks' 'r.st_ctime' 'r.st_ctime_ns' 'r.st_dev' 'r.st_gid' 'r.st_ino' 'r.st_mode' 'r.st_mtime' 'r.st_mtime_ns' 'r.st_nlink' 'r.st_rdev' 'r.st_size' 'r.st_uid' 'r.stx_atomic_write_segments_max' 'r.stx_atomic_write_unit_max' 'r.stx_atomic_write_unit_max_opt' 'r.stx_atomic_write_unit_min' 'r.stx_attributes' 'r.stx_attributes_mask' 'r.stx_dio_mem_align' 'r.stx_dio_offset_align' 'r.stx_dio_read_offset_align' 'r.stx_mask' 'r.stx_mnt_id' 'r.stx_subvol'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment