Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork34.2k
Closed
Description
Feature or enhancement
The lockbench.py benchmarksPyMutex andPyThread_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 onPyMutex, so this isn't really useful anymore. - Add
--work-outsideto adjust the amount work done whilenot 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-iterswhich 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".