BlogDocs

feat: Add recursion_mode ('immediate' or 'deferred') to Signal and SignalInstance(#293)

Merged
Comparing
tlambert03:recursion-mode
(
1589cec
) with
main
(
c643ad0
)
+1%
IMPROVEMENTS
0
REGRESSIONS
0
UNTOUCHED
66
NEW
0
DROPPED
0
IGNORED
0

Benchmarks

Passed

test_emit_time[setattr-50]
tests/test_bench.py::test_emit_time[setattr-50]
+5%
80.7 µs
76.9 µs
test_emit_time[setitem-50]
tests/test_bench.py::test_emit_time[setitem-50]
+4%
97.8 µs
93.8 µs
test_emit_time[lambda-50]
tests/test_bench.py::test_emit_time[lambda-50]
+3%
103.8 µs
100.4 µs
test_emit_time[function-50]
tests/test_bench.py::test_emit_time[function-50]
+3%
103.7 µs
100.4 µs
test_emit_time[setattr-34]
tests/test_bench.py::test_emit_time[setattr-34]
+3%
72.3 µs
70 µs
test_emit_time[setitem-34]
tests/test_bench.py::test_emit_time[setitem-34]
+3%
84.6 µs
82.2 µs
test_emit_time[lambda-34]
tests/test_bench.py::test_emit_time[lambda-34]
+3%
88.8 µs
86.3 µs
test_emit_time[method-50]
tests/test_bench.py::test_emit_time[method-50]
+3%
127.7 µs
124.5 µs
test_emit_time[method-34]
tests/test_bench.py::test_emit_time[method-34]
+3%
106 µs
103.4 µs
test_connect_time[setitem-check_types]
tests/test_bench.py::test_connect_time[setitem-check_types]
+3%
68.7 µs
67 µs
test_emit_time[function-34]
tests/test_bench.py::test_emit_time[function-34]
+3%
88.8 µs
86.6 µs
test_connect_time[setattr-]
tests/test_bench.py::test_connect_time[setattr-]
+2%
62.8 µs
61.2 µs
test_emit_time[setattr-18]
tests/test_bench.py::test_emit_time[setattr-18]
+2%
64.3 µs
62.9 µs
test_connect_time[setitem-]
tests/test_bench.py::test_connect_time[setitem-]
+2%
63.1 µs
61.9 µs
test_emit_time[setitem-18]
tests/test_bench.py::test_emit_time[setitem-18]
+2%
71.1 µs
69.7 µs
test_emit_time[partial-18]
tests/test_bench.py::test_emit_time[partial-18]
+2%
86.6 µs
85 µs
test_emit_time[lambda-18]
tests/test_bench.py::test_emit_time[lambda-18]
+2%
73.2 µs
72 µs
test_emit_time[function-18]
tests/test_bench.py::test_emit_time[function-18]
+1%
73.1 µs
72 µs
test_evented_setattr
tests/test_bench.py::test_evented_setattr
+1%
28.3 µs
27.9 µs
test_emit_time[partial-34]
tests/test_bench.py::test_emit_time[partial-34]
+1%
110.1 µs
108.6 µs
test_emit_time[partial_method-34]
tests/test_bench.py::test_emit_time[partial_method-34]
+1%
124 µs
122.4 µs
test_emit_time[real_func-18]
tests/test_bench.py::test_emit_time[real_func-18]
+1%
100.9 µs
99.6 µs
test_emit_time[real_func-34]
tests/test_bench.py::test_emit_time[real_func-34]
+1%
134.9 µs
133.2 µs
test_emit_time[method-2]
tests/test_bench.py::test_emit_time[method-2]
+1%
62.6 µs
61.8 µs
test_emit_time[setattr-2]
tests/test_bench.py::test_emit_time[setattr-2]
+1%
56.7 µs
56.1 µs
test_emit_time[partial-50]
tests/test_bench.py::test_emit_time[partial-50]
+1%
132.9 µs
131.4 µs
test_connect_time[partial_method-check_types]
tests/test_bench.py::test_connect_time[partial_method-check_types]
+1%
286.6 µs
283.4 µs
test_emit_time[partial_method-50]
tests/test_bench.py::test_emit_time[partial_method-50]
+1%
154.2 µs
152.5 µs
test_emit_time[method-18]
tests/test_bench.py::test_emit_time[method-18]
+1%
83.8 µs
82.9 µs
test_connect_time[print-]
tests/test_bench.py::test_connect_time[print-]
+1%
146.5 µs
145 µs
test_connect_time[partial-]
tests/test_bench.py::test_connect_time[partial-]
+1%
247.6 µs
245.1 µs
test_connect_time[method-check_types]
tests/test_bench.py::test_connect_time[method-check_types]
+1%
185.7 µs
183.9 µs
test_connect_time[real_func-]
tests/test_bench.py::test_connect_time[real_func-]
+1%
124.2 µs
123.1 µs
test_emit_time[partial_method-18]
tests/test_bench.py::test_emit_time[partial_method-18]
+1%
94.3 µs
93.6 µs
test_emit_time[print-34]
tests/test_bench.py::test_emit_time[print-34]
+1%
275.9 µs
274.2 µs
test_connect_time[real_func-check_types]
tests/test_bench.py::test_connect_time[real_func-check_types]
+1%
127.1 µs
126.4 µs
test_connect_time[partial-check_types]
tests/test_bench.py::test_connect_time[partial-check_types]
+1%
257.9 µs
256.5 µs
test_emit_time[real_func-50]
tests/test_bench.py::test_emit_time[real_func-50]
+1%
168.6 µs
167.7 µs
test_emit_time[print-50]
tests/test_bench.py::test_emit_time[print-50]
0%
373.6 µs
371.9 µs
test_emit_time[setitem-2]
tests/test_bench.py::test_emit_time[setitem-2]
0%
58.2 µs
57.9 µs
test_connect_time[function-]
tests/test_bench.py::test_connect_time[function-]
0%
140.6 µs
140 µs
test_connect_time[lambda-check_types]
tests/test_bench.py::test_connect_time[lambda-check_types]
0%
144.3 µs
143.9 µs
test_emit_time[partial_method-2]
tests/test_bench.py::test_emit_time[partial_method-2]
0%
64.4 µs
64.2 µs
test_connect_time[partial_method-]
tests/test_bench.py::test_connect_time[partial_method-]
0%
277.7 µs
277 µs
test_emit_time[function-2]
tests/test_bench.py::test_emit_time[function-2]
0%
64.3 µs
64.2 µs
test_connect_time[function-check_types]
tests/test_bench.py::test_connect_time[function-check_types]
0%
155.8 µs
155.5 µs
test_connect_time[lambda-]
tests/test_bench.py::test_connect_time[lambda-]
0%
142.3 µs
142.1 µs
test_connect_time[method-]
tests/test_bench.py::test_connect_time[method-]
0%
176.8 µs
176.7 µs
test_emit_time[print-18]
tests/test_bench.py::test_emit_time[print-18]
0%
177.2 µs
177.2 µs
test_emit_time[print-2]
tests/test_bench.py::test_emit_time[print-2]
0%
85.4 µs
85.5 µs
test_connect_time[print-check_types]
tests/test_bench.py::test_connect_time[print-check_types]
0%
206.5 µs
206.7 µs
test_emit_time[partial-2]
tests/test_bench.py::test_emit_time[partial-2]
0%
60.5 µs
60.6 µs
test_dataclass_setattr[msgspec]
tests/test_bench.py::test_dataclass_setattr[msgspec]
0%
763.8 µs
765.5 µs
test_dataclass_setattr[dataclass]
tests/test_bench.py::test_dataclass_setattr[dataclass]
0%
749.1 µs
751.1 µs
test_connect_time[setattr-check_types]
tests/test_bench.py::test_connect_time[setattr-check_types]
0%
67.8 µs
68 µs
test_dataclass_setattr[pydantic]
tests/test_bench.py::test_dataclass_setattr[pydantic]
0%
854.5 µs
858.6 µs
test_evented_creation
tests/test_bench.py::test_evented_creation
0%
1.6 ms
1.6 ms
test_emit_time[lambda-2]
tests/test_bench.py::test_emit_time[lambda-2]
-1%
58.1 µs
58.4 µs
test_dataclass_setattr[attrs]
tests/test_bench.py::test_dataclass_setattr[attrs]
-1%
764.3 µs
770.1 µs
test_dataclass_group_create[attrs]
tests/test_bench.py::test_dataclass_group_create[attrs]
-1%
572.9 µs
581.2 µs
test_create_signal
tests/test_bench.py::test_create_signal
-2%
73.9 µs
75.2 µs
test_dataclass_group_create[pydantic]
tests/test_bench.py::test_dataclass_group_create[pydantic]
-2%
573.6 µs
584.9 µs
test_dataclass_group_create[msgspec]
tests/test_bench.py::test_dataclass_group_create[msgspec]
-2%
577.7 µs
591.3 µs
test_dataclass_group_create[dataclass]
tests/test_bench.py::test_dataclass_group_create[dataclass]
-2%
486.6 µs
498.3 µs
test_emit_time[real_func-2]
tests/test_bench.py::test_emit_time[real_func-2]
-3%
65.3 µs
67.3 µs
test_create_signal_instance
tests/test_bench.py::test_create_signal_instance
-9%
26.1 µs
28.6 µs

Commits

Click on a commit to change the comparison range
base
main
c643ad0
+16%
working
af27944
8 months ago
by tlambert03
0%
pragma
da897ad
8 months ago
by tlambert03
+1%
more tests
70e7e09
8 months ago
by tlambert03
-1%
Update _signal.py Co-authored-by: Grzegorz Bokota <bokota+github@gmail.com>
6f906fe
8 months ago
by tlambert03
0%
add to evented model
36024ab
8 months ago
by tlambert03
-27%
lint docs
976d2f0
8 months ago
by tlambert03
-1%
fix py38
f69c407
8 months ago
by tlambert03
+2%
pragma
1803fba
8 months ago
by tlambert03
+11%
change default recursion mode
1589cec
8 months ago
by tlambert03
ResourcesHomePricingDocsBlogGitHubChangelog
Copyright © 2024 CodSpeed Technology SAS. All rights reserved.