Skip to content

Commit 64af00f

Browse files
committed
Update benchmark results in readme file.
1 parent 9370823 commit 64af00f

File tree

1 file changed

+83
-50
lines changed

1 file changed

+83
-50
lines changed

README.rst

Lines changed: 83 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -66,38 +66,57 @@ Here are some timings for Python 2.7 for the following scenarios:
6666
All four are benchmarked for the single threaded case and the multi threaded case
6767
with 10 threads. I also tested it with 20 threads only to see that it then takes
6868
about twice the time for both versions. Note also that the congested case is
69-
substantially slower for both locks, so I only looped 1000x here to get useful
69+
substantially slower for both locks and the benchmark includes the thread
70+
creation time, so I only looped 1000x here to get useful
7071
timings instead of 100000x for the single threaded case.
7172

7273
::
7374

74-
Testing threading.RLock (2.7)
75+
Testing _RLock (2.7.18)
7576

7677
sequential (x100000):
77-
lock_unlock : 1.408 sec
78-
reentrant_lock_unlock : 1.089 sec
79-
mixed_lock_unlock : 1.212 sec
80-
lock_unlock_nonblocking : 1.415 sec
78+
lock_unlock : 853.55 msec
79+
reentrant_lock_unlock : 684.52 msec
80+
mixed_lock_unlock : 758.27 msec
81+
lock_unlock_nonblocking : 860.40 msec
82+
context_manager : 2876.00 msec
8183

8284
threaded 10T (x1000):
83-
lock_unlock : 1.188 sec
84-
reentrant_lock_unlock : 1.039 sec
85-
mixed_lock_unlock : 1.068 sec
86-
lock_unlock_nonblocking : 1.199 sec
85+
lock_unlock : 2210.69 msec
86+
reentrant_lock_unlock : 1864.38 msec
87+
mixed_lock_unlock : 1963.10 msec
88+
lock_unlock_nonblocking : 3709.91 msec
89+
context_manager : 2640.32 msec
8790

88-
Testing FastRLock
91+
Testing FastRLock (0.8.1)
8992

9093
sequential (x100000):
91-
lock_unlock : 0.122 sec
92-
reentrant_lock_unlock : 0.124 sec
93-
mixed_lock_unlock : 0.137 sec
94-
lock_unlock_nonblocking : 0.156 sec
94+
lock_unlock : 139.76 msec
95+
reentrant_lock_unlock : 137.56 msec
96+
mixed_lock_unlock : 140.75 msec
97+
lock_unlock_nonblocking : 164.64 msec
98+
context_manager : 593.06 msec
9599

96100
threaded 10T (x1000):
97-
lock_unlock : 0.911 sec
98-
reentrant_lock_unlock : 0.938 sec
99-
mixed_lock_unlock : 0.953 sec
100-
lock_unlock_nonblocking : 0.916 sec
101+
lock_unlock : 1621.13 msec
102+
reentrant_lock_unlock : 1807.09 msec
103+
mixed_lock_unlock : 1834.21 msec
104+
lock_unlock_nonblocking : 1642.06 msec
105+
context_manager : 1730.29 msec
106+
107+
Testing Cython interface of FastRLock (0.8.1)
108+
109+
sequential (x100000):
110+
lock_unlock : 19.14 msec
111+
reentrant_lock_unlock : 19.12 msec
112+
mixed_lock_unlock : 16.81 msec
113+
lock_unlock_nonblocking : 14.49 msec
114+
115+
threaded 10T (x1000):
116+
lock_unlock : 1511.85 msec
117+
reentrant_lock_unlock : 1541.96 msec
118+
mixed_lock_unlock : 1585.70 msec
119+
lock_unlock_nonblocking : 1585.35 msec
101120

102121

103122
How does it compare to Python 3.7 and later?
@@ -111,34 +130,48 @@ a C call instead.
111130

112131
::
113132

114-
Testing threading.RLock (3.9.7)
115-
116-
sequential (x1000):
117-
lock_unlock : 1.00 msec
118-
reentrant_lock_unlock : 0.80 msec
119-
mixed_lock_unlock : 0.88 msec
120-
lock_unlock_nonblocking : 1.23 msec
121-
context_manager : 5.29 msec
122-
123-
threaded 10T (x100):
124-
lock_unlock : 65.54 msec
125-
reentrant_lock_unlock : 65.49 msec
126-
mixed_lock_unlock : 86.61 msec
127-
lock_unlock_nonblocking : 66.30 msec
128-
context_manager : 84.27 msec
129-
130-
Testing FastRLock (0.8)
131-
132-
sequential (x1000):
133-
lock_unlock : 0.60 msec
134-
reentrant_lock_unlock : 0.53 msec
135-
mixed_lock_unlock : 0.51 msec
136-
lock_unlock_nonblocking : 0.54 msec
137-
context_manager : 3.56 msec
138-
139-
threaded 10T (x100):
140-
lock_unlock : 63.64 msec
141-
reentrant_lock_unlock : 69.93 msec
142-
mixed_lock_unlock : 64.66 msec
143-
lock_unlock_nonblocking : 69.28 msec
144-
context_manager : 80.07 msec
133+
Testing RLock (3.10.1)
134+
135+
sequential (x100000):
136+
lock_unlock : 138.36 msec
137+
reentrant_lock_unlock : 95.35 msec
138+
mixed_lock_unlock : 102.05 msec
139+
lock_unlock_nonblocking : 131.44 msec
140+
context_manager : 616.83 msec
141+
142+
threaded 10T (x1000):
143+
lock_unlock : 1386.60 msec
144+
reentrant_lock_unlock : 1207.75 msec
145+
mixed_lock_unlock : 1319.62 msec
146+
lock_unlock_nonblocking : 1325.07 msec
147+
context_manager : 1357.93 msec
148+
149+
Testing FastRLock (0.8.1)
150+
151+
sequential (x100000):
152+
lock_unlock : 77.47 msec
153+
reentrant_lock_unlock : 64.14 msec
154+
mixed_lock_unlock : 73.51 msec
155+
lock_unlock_nonblocking : 70.31 msec
156+
context_manager : 393.34 msec
157+
158+
threaded 10T (x1000):
159+
lock_unlock : 1214.13 msec
160+
reentrant_lock_unlock : 1171.75 msec
161+
mixed_lock_unlock : 1184.33 msec
162+
lock_unlock_nonblocking : 1207.42 msec
163+
context_manager : 1232.20 msec
164+
165+
Testing Cython interface of FastRLock (0.8.1)
166+
167+
sequential (x100000):
168+
lock_unlock : 18.70 msec
169+
reentrant_lock_unlock : 15.88 msec
170+
mixed_lock_unlock : 14.96 msec
171+
lock_unlock_nonblocking : 13.47 msec
172+
173+
threaded 10T (x1000):
174+
lock_unlock : 1236.21 msec
175+
reentrant_lock_unlock : 1245.77 msec
176+
mixed_lock_unlock : 1194.25 msec
177+
lock_unlock_nonblocking : 1206.96 msec

0 commit comments

Comments
 (0)