You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The lockbench.py benchmarks PyMutex and PyThread_type_lock for various number of threads and length of critical section. You'll see similar benchmarks for other mutex implementations: Rust parking_lot, WebKit.
I'd like to make a few updates to this benchmark:
Remove PyThread_type_lock. It's now based on PyMutex, so this isn't really useful anymore.
Add --work-outside to adjust the amount work done while not holding the lock. This helps simulate low and moderate contention scenarios.
Add --num-locks. So if we run with 8 threads and 2 locks, each group of 4 threads is independently contending for a lock. This adds more concurrency and helps demonstrate the limits of excessive spinning.
Make number of threads configurable
Add --total-iters which configures each thread to run for a fixed number of iterations instead of the default of running the whole benchmark for 1 second. With this mode, the benchmarks is only as fast as the slowest thread. It's another way to measure the effect of "fairness".
Activity
pythongh-145230: Update lockbench
pythongh-145230: Update lockbench.py and benchmark_locks API
gh-145230: Update lockbench (gh-145231)
pythongh-145230: Update lockbench (pythongh-145231)
pythongh-145230: Update lockbench (pythongh-145231)