-
-
Notifications
You must be signed in to change notification settings - Fork 34.1k
Open
Labels
topic-free-threadingtriagedThe issue has been accepted as valid by a triager.The issue has been accepted as valid by a triager.type-featureA feature request or enhancementA feature request or enhancement
Description
Feature or enhancement
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 onPyMutex, so this isn't really useful anymore. - Add
--work-outsideto 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-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".
Linked PRs
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
topic-free-threadingtriagedThe issue has been accepted as valid by a triager.The issue has been accepted as valid by a triager.type-featureA feature request or enhancementA feature request or enhancement