BlogDocs

fast: add `emit_fast` method for 10x faster emission (without safety checks)(#331)

Merged
Comparing
tlambert03:emit-fast
(
a78324e
) with
main
(
019232e
)
+11%
IMPROVEMENTS
1
REGRESSIONS
0
UNTOUCHED
65
NEW
1
DROPPED
0
IGNORED
0

Benchmarks

Improved

test_emit_time[partial-2]
tests/test_bench.py::test_emit_time[partial-2]
+11%
69 µs
62.1 µs

New

test_emit_fast
tests/test_bench.py::test_emit_fast
N/A
N/A
22.1 µs

Passed

test_connect_time[function-]
tests/test_bench.py::test_connect_time[function-]
+2%
143.4 µs
140.4 µs
test_connect_time[setattr-]
tests/test_bench.py::test_connect_time[setattr-]
+2%
62.3 µs
61.1 µs
test_connect_time[setitem-]
tests/test_bench.py::test_connect_time[setitem-]
+2%
62.8 µs
61.6 µs
test_evented_creation
tests/test_bench.py::test_evented_creation
+2%
1.7 ms
1.6 ms
test_connect_time[setattr-check_types]
tests/test_bench.py::test_connect_time[setattr-check_types]
+1%
67.9 µs
67.1 µs
test_emit_time[real_func-34]
tests/test_bench.py::test_emit_time[real_func-34]
+1%
131.3 µs
130.1 µs
test_emit_time[real_func-50]
tests/test_bench.py::test_emit_time[real_func-50]
+1%
163.8 µs
162.3 µs
test_evented_setattr
tests/test_bench.py::test_evented_setattr
+1%
27.8 µs
27.6 µs
test_emit_time[partial-34]
tests/test_bench.py::test_emit_time[partial-34]
+1%
107.6 µs
106.8 µs
test_emit_time[setitem-18]
tests/test_bench.py::test_emit_time[setitem-18]
+1%
70.4 µs
69.8 µs
test_connect_time[lambda-check_types]
tests/test_bench.py::test_connect_time[lambda-check_types]
+1%
145.2 µs
144.1 µs
test_emit_time[print-2]
tests/test_bench.py::test_emit_time[print-2]
+1%
86.8 µs
86.2 µs
test_emit_time[partial_method-18]
tests/test_bench.py::test_emit_time[partial_method-18]
+1%
93.4 µs
92.8 µs
test_create_signal
tests/test_bench.py::test_create_signal
+1%
68.8 µs
68.3 µs
test_connect_time[partial-check_types]
tests/test_bench.py::test_connect_time[partial-check_types]
+1%
256.1 µs
254.4 µs
test_connect_time[setitem-check_types]
tests/test_bench.py::test_connect_time[setitem-check_types]
+1%
67.4 µs
67 µs
test_connect_time[real_func-check_types]
tests/test_bench.py::test_connect_time[real_func-check_types]
+1%
126.9 µs
126.1 µs
test_emit_time[lambda-2]
tests/test_bench.py::test_emit_time[lambda-2]
+1%
60.1 µs
59.8 µs
test_dataclass_setattr[pydantic]
tests/test_bench.py::test_dataclass_setattr[pydantic]
0%
865.6 µs
861.5 µs
test_emit_time[setitem-34]
tests/test_bench.py::test_emit_time[setitem-34]
0%
82.3 µs
82 µs
test_emit_time[lambda-18]
tests/test_bench.py::test_emit_time[lambda-18]
0%
74.2 µs
73.9 µs
test_emit_time[real_func-2]
tests/test_bench.py::test_emit_time[real_func-2]
0%
65.9 µs
65.6 µs
test_dataclass_group_create[pydantic]
tests/test_bench.py::test_dataclass_group_create[pydantic]
0%
541.2 µs
539.1 µs
test_emit_time[setattr-34]
tests/test_bench.py::test_emit_time[setattr-34]
0%
70.2 µs
70 µs
test_dataclass_group_create[msgspec]
tests/test_bench.py::test_dataclass_group_create[msgspec]
0%
544.9 µs
543.1 µs
test_emit_time[print-18]
tests/test_bench.py::test_emit_time[print-18]
0%
179.3 µs
178.7 µs
test_create_signal_instance
tests/test_bench.py::test_create_signal_instance
0%
33.4 µs
33.3 µs
test_emit_time[partial-50]
tests/test_bench.py::test_emit_time[partial-50]
0%
131.9 µs
131.5 µs
test_emit_time[lambda-50]
tests/test_bench.py::test_emit_time[lambda-50]
0%
105 µs
104.8 µs
test_connect_time[real_func-]
tests/test_bench.py::test_connect_time[real_func-]
0%
123.6 µs
123.3 µs
test_emit_time[method-18]
tests/test_bench.py::test_emit_time[method-18]
0%
83.7 µs
83.5 µs
test_dataclass_setattr[msgspec]
tests/test_bench.py::test_dataclass_setattr[msgspec]
0%
773.6 µs
772.3 µs
test_emit_time[function-18]
tests/test_bench.py::test_emit_time[function-18]
0%
74.3 µs
74.2 µs
test_connect_time[print-]
tests/test_bench.py::test_connect_time[print-]
0%
145.9 µs
145.7 µs
test_emit_time[partial-18]
tests/test_bench.py::test_emit_time[partial-18]
0%
83.7 µs
83.6 µs
test_emit_time[method-50]
tests/test_bench.py::test_emit_time[method-50]
0%
127.4 µs
127.2 µs
test_emit_time[function-50]
tests/test_bench.py::test_emit_time[function-50]
0%
104.9 µs
104.7 µs
test_emit_time[partial_method-50]
tests/test_bench.py::test_emit_time[partial_method-50]
0%
151.2 µs
151.1 µs
test_emit_time[setitem-50]
tests/test_bench.py::test_emit_time[setitem-50]
0%
94.1 µs
94.1 µs
test_dataclass_group_create[dataclass]
tests/test_bench.py::test_dataclass_group_create[dataclass]
0%
523.1 µs
522.8 µs
test_dataclass_setattr[attrs]
tests/test_bench.py::test_dataclass_setattr[attrs]
0%
772.3 µs
771.9 µs
test_emit_time[setitem-2]
tests/test_bench.py::test_emit_time[setitem-2]
0%
58.2 µs
58.2 µs
test_connect_time[partial_method-check_types]
tests/test_bench.py::test_connect_time[partial_method-check_types]
0%
282.5 µs
282.6 µs
test_emit_time[setattr-18]
tests/test_bench.py::test_emit_time[setattr-18]
0%
63.1 µs
63.1 µs
test_dataclass_group_create[attrs]
tests/test_bench.py::test_dataclass_group_create[attrs]
0%
536.8 µs
536.9 µs
test_emit_time[method-34]
tests/test_bench.py::test_emit_time[method-34]
0%
105.5 µs
105.5 µs
test_connect_time[function-check_types]
tests/test_bench.py::test_connect_time[function-check_types]
0%
156.4 µs
156.4 µs
test_connect_time[print-check_types]
tests/test_bench.py::test_connect_time[print-check_types]
0%
205.5 µs
205.6 µs
test_connect_time[partial-]
tests/test_bench.py::test_connect_time[partial-]
0%
243.2 µs
243.4 µs
test_emit_time[partial_method-34]
tests/test_bench.py::test_emit_time[partial_method-34]
0%
122 µs
122.1 µs
test_emit_time[setattr-50]
tests/test_bench.py::test_emit_time[setattr-50]
0%
76.9 µs
76.9 µs
test_emit_time[lambda-34]
tests/test_bench.py::test_emit_time[lambda-34]
0%
89.3 µs
89.5 µs
test_connect_time[partial_method-]
tests/test_bench.py::test_connect_time[partial_method-]
0%
275.4 µs
276 µs
test_emit_time[setattr-2]
tests/test_bench.py::test_emit_time[setattr-2]
0%
56.2 µs
56.4 µs
test_emit_time[function-34]
tests/test_bench.py::test_emit_time[function-34]
0%
89.4 µs
89.7 µs
test_connect_time[method-check_types]
tests/test_bench.py::test_connect_time[method-check_types]
0%
186.1 µs
186.8 µs
test_emit_time[print-50]
tests/test_bench.py::test_emit_time[print-50]
0%
376.3 µs
377.7 µs
test_dataclass_setattr[dataclass]
tests/test_bench.py::test_dataclass_setattr[dataclass]
0%
755.7 µs
759.1 µs
test_emit_time[print-34]
tests/test_bench.py::test_emit_time[print-34]
-1%
277.1 µs
278.5 µs
test_connect_time[method-]
tests/test_bench.py::test_connect_time[method-]
-1%
177.8 µs
178.8 µs
test_emit_time[function-2]
tests/test_bench.py::test_emit_time[function-2]
-1%
64.7 µs
65.1 µs
test_emit_time[partial_method-2]
tests/test_bench.py::test_emit_time[partial_method-2]
-1%
64.1 µs
64.7 µs
test_emit_time[real_func-18]
tests/test_bench.py::test_emit_time[real_func-18]
-1%
99.1 µs
100.2 µs
test_emit_time[method-2]
tests/test_bench.py::test_emit_time[method-2]
-1%
62.1 µs
62.8 µs
test_connect_time[lambda-]
tests/test_bench.py::test_connect_time[lambda-]
-1%
140.9 µs
142.7 µs

Commits

Click on a commit to change the comparison range
base
main
019232e
+12%
fast: add emit_fast
d31db00
4 days ago
by tlambert03
0%
fix benchmark
4dc1001
4 days ago
by tlambert03
0%
remove bench from asv
1948399
4 days ago
by tlambert03
-1%
test cov
a78324e
4 days ago
by tlambert03
ResourcesHomePricingDocsBlogGitHubChangelog
Copyright © 2024 CodSpeed Technology SAS. All rights reserved.