Add "last" operator
Open
tcw165
opened this issue 2 years ago
•
3 comments
Linux CLANG
Observable construction
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
Specific observable construction
0.44ns
0.403254
1.08
0.36ns
Dynamic observable construction
27.69ns
35.0398
0.79
27.86ns
Specific observable construction + as_dynamic
31.31ns
35.035
0.89
23.98ns
Observable lift
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
Specific observable lift specific observer
153.87ns
203.792
0.76
396.16ns
Specific observable lift dynamic observer
177.86ns
233.293
0.76
340.47ns
Dynamic observable lift specific observer
234.66ns
289.511
0.81
389.14ns
Dynamic observable lift dynamic observer
246.89ns
296.722
0.83
472.33ns
Observable subscribe
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
Specific observable subscribe specific observer
122.98ns
157.078
0.78
320.33ns
Specific observable subscribe dynamic observer
162.77ns
170.2
0.96
428.25ns
Dynamic observable subscribe specific observer
201.67ns
236.026
0.85
421.40ns
Dynamic observable subscribe dynamic observer
185.03ns
229.534
0.81
387.78ns
Observable subscribe #2
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
Specific observable subscribe lambda
129.94ns
154.472
0.84
416.43ns
Dynamic observable subscribe lambda
188.72ns
233.974
0.81
389.41ns
Specific observable subscribe lambda without subscription
138.28ns
154.36
0.90
423.67ns
Dynamic observable subscribe lambda without subscription
229.78ns
235.502
0.98
408.36ns
Specific observable subscribe specific subscriber
113.97ns
115.561
0.99
342.83ns
Dynamic observable subscribe specific subscriber
182.03ns
191.276
0.95
372.87ns
Specific observable subscribe dynamic observer
108.12ns
117.891
0.92
303.65ns
Dynamic observable subscribe dynamic observer
191.31ns
184.084
1.04
339.56ns
Observer construction
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
Specific observer construction
0.36ns
0.402533
0.89
0.31ns
Dynamic observer construction
33.42ns
35.0087
0.95
23.37ns
Specific observer construction + as_dynamic
31.81ns
35.0291
0.91
21.27ns
OnNext
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
Specific observer OnNext
0.77ns
0.804131
0.96
0.63ns
Dynamic observer OnNext
2.28ns
2.40881
0.95
2.36ns
Subscriber construction
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
Make subsriber
30.73ns
38.9977
0.79
69.67ns
Make copy of subscriber
17.62ns
20.0961
0.88
4.81ns
Transform subsriber to dynamic
44.50ns
55.0733
0.81
24.65ns
Subscription
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
composite_subscription create
36.50ns
39.04
0.93
47.64ns
composite_subscription add
40.51ns
45.927
0.88
21.99ns
composite_subscription unsubscribe
6.20ns
7.15976
0.87
10.81ns
composite_subscription unsubscribe only subscribed
6.88ns
10.0295
0.69
10.98ns
buffer
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
buffer
322.07ns
416.68
0.77
1971.30ns
sending of values from observable via buffer to subscriber
4.87ns
4.80116
1.01
27.46ns
chains creation test
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
long non-state chain creation + subscribe
318.75ns
393.514
0.81
688.29ns
long stateful chain creation + subscribe
483.81ns
587.224
0.82
1108.48ns
concat
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
concat
1746.05ns
1635.54
1.07
3927.60ns
concat_with
1750.23ns
1962.53
0.89
5987.68ns
distinct_until_changed
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
distinct_until_changed construction from observable via dot + subscribe
191.50ns
216.8
0.88
399.50ns
sending of values from observable via distinct_until_changed to subscriber
3.26ns
3.35066
0.97
1.29ns
foundamental sources
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
empty
134.29ns
159.142
0.84
831.46ns
error
174.91ns
221.913
0.79
1036.31ns
never
93.63ns
118.296
0.79
389.71ns
from
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
from vector with int
172.04ns
178.427
0.96
925.13ns
immediate scheduler
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
no any re-schedule
27.41ns
33.7063
0.81
190.73ns
re-schedule 10 times
563.61ns
699.788
0.81
197.40ns
just
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
just send int
159.47ns
161.081
0.99
827.97ns
just send variadic
172.36ns
199.685
0.86
904.62ns
last
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
last construction from observable via dot + subscribe
265.38ns
None
.
716.88ns
sending of values from observable via last to subscriber
1.94ns
None
.
3.79ns
map
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
map construction from observable via dot + subscribe
160.29ns
175.78
0.91
349.73ns
sending of values from observable via map to subscriber
1.26ns
1.20685
1.04
1.83ns
merge
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
merge
1485.44ns
1706.82
0.87
3863.48ns
merge_with
2150.06ns
2104.94
1.02
5135.83ns
observe_on
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
observe_on construction from observable via dot + subscribe
726.33ns
854.992
0.85
3322.21ns
sending of values from observable via observe_on to subscriber
97.20ns
107.843
0.90
248.16ns
publish_subject callbacks
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
on_next
31.23ns
29.3199
1.07
10.56ns
on_error
2.10ns
2.02153
1.04
17.62ns
on_completed
2.95ns
2.65178
1.11
0.46ns
publish_subject routines
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
construct
172.25ns
189.585
0.91
202.18ns
get_observable
30.24ns
34.9376
0.87
55.92ns
get_subscriber
69.63ns
71.3883
0.98
12.36ns
repeat
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
repeat construction from observable via dot + subscribe
4328.36ns
4436.23
0.98
3526.11ns
scan
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
scan construction from observable via dot + subscribe
201.03ns
214.766
0.94
376.79ns
sending of values from observable via scan to subscriber
2.65ns
2.41102
1.10
1.68ns
skip
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
skip construction from observable via dot + subscribe
180.90ns
217.745
0.83
574.77ns
sending of values from observable via skip to subscriber
2.32ns
2.41636
0.96
2.13ns
switch_on_next
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
switch_on_next construction from observable via dot + subscribe
3221.99ns
2364.52
1.36
3544.98ns
sending of values from observable via switch_on_next to subscriber
494.70ns
576.507
0.86
750.54ns
take
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
take construction from observable via dot + subscribe
262.26ns
283.316
0.93
503.30ns
sending of values from observable via take to subscriber
2.68ns
3.22405
0.83
2.39ns
trampoline scheduler
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
no any re-schedule
40.49ns
43.0107
0.94
224.79ns
re-schedule 10 times
640.72ns
729.519
0.88
361.91ns
recursively schedule 10 times
1711.32ns
2007.95
0.85
6841.37ns
window
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
window
2100.57ns
2374.75
0.88
3792.98ns
sending of values from observable via window to subscriber
536.95ns
611.133
0.88
471.56ns
with_latest_from
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
with_latest_from construction from observable via dot + subscribe
896.73ns
954.016
0.94
1300.26ns
sending of values from observable via with_latest_from to subscriber
22.63ns
21.3068
1.06
2.59ns
Linux GCC
Observable construction
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
Specific observable construction
0.34ns
0.335012
1.00
0.34ns
Dynamic observable construction
31.50ns
31.4748
1.00
22.80ns
Specific observable construction + as_dynamic
34.52ns
31.6707
1.09
22.38ns
Observable lift
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
Specific observable lift specific observer
176.66ns
175.849
1.00
337.19ns
Specific observable lift dynamic observer
196.97ns
196.79
1.00
352.04ns
Dynamic observable lift specific observer
251.53ns
251.137
1.00
386.01ns
Dynamic observable lift dynamic observer
258.68ns
258.316
1.00
365.35ns
Observable subscribe
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
Specific observable subscribe specific observer
137.78ns
138.606
0.99
332.10ns
Specific observable subscribe dynamic observer
147.71ns
147.244
1.00
340.01ns
Dynamic observable subscribe specific observer
207.70ns
203.702
1.02
369.24ns
Dynamic observable subscribe dynamic observer
201.13ns
200.382
1.00
343.62ns
Observable subscribe #2
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
Specific observable subscribe lambda
138.21ns
145.51
0.95
332.98ns
Dynamic observable subscribe lambda
204.40ns
203.212
1.01
375.26ns
Specific observable subscribe lambda without subscription
137.46ns
138.116
1.00
332.46ns
Dynamic observable subscribe lambda without subscription
203.50ns
203.79
1.00
376.81ns
Specific observable subscribe specific subscriber
102.67ns
102.37
1.00
276.33ns
Dynamic observable subscribe specific subscriber
167.75ns
168.433
1.00
322.71ns
Specific observable subscribe dynamic observer
102.75ns
102.967
1.00
280.45ns
Dynamic observable subscribe dynamic observer
153.51ns
153.466
1.00
290.76ns
Observer construction
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
Specific observer construction
0.34ns
0.334639
1.00
0.33ns
Dynamic observer construction
31.49ns
33.1563
0.95
20.93ns
Specific observer construction + as_dynamic
31.60ns
31.5486
1.00
20.80ns
OnNext
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
Specific observer OnNext
0.34ns
0.334601
1.00
0.34ns
Dynamic observer OnNext
2.01ns
2.00994
1.00
1.99ns
Subscriber construction
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
Make subsriber
31.66ns
31.1232
1.02
60.00ns
Make copy of subscriber
16.75ns
16.7374
1.00
5.49ns
Transform subsriber to dynamic
44.31ns
44.2995
1.00
27.08ns
Subscription
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
composite_subscription create
31.46ns
31.1656
1.01
56.10ns
composite_subscription add
43.40ns
39.467
1.10
17.83ns
composite_subscription unsubscribe
6.85ns
6.91324
0.99
10.05ns
composite_subscription unsubscribe only subscribed
8.33ns
8.3331
1.00
11.17ns
buffer
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
buffer
353.44ns
352.32
1.00
1894.31ns
sending of values from observable via buffer to subscriber
5.34ns
6.36486
0.84
31.62ns
chains creation test
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
long non-state chain creation + subscribe
351.06ns
353.419
0.99
748.77ns
long stateful chain creation + subscribe
487.03ns
485.413
1.00
1046.59ns
concat
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
concat
1466.69ns
1484.91
0.99
3704.65ns
concat_with
1764.05ns
1774.6
0.99
4134.39ns
distinct_until_changed
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
distinct_until_changed construction from observable via dot + subscribe
191.80ns
192.315
1.00
350.96ns
sending of values from observable via distinct_until_changed to subscriber
3.69ns
3.68525
1.00
1.34ns
foundamental sources
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
empty
143.56ns
141.097
1.02
737.80ns
error
188.96ns
190.072
0.99
843.58ns
never
103.37ns
104.222
0.99
280.77ns
from
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
from vector with int
162.31ns
161.05
1.01
764.40ns
immediate scheduler
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
no any re-schedule
27.80ns
27.7991
1.00
131.38ns
re-schedule 10 times
609.45ns
607.8
1.00
159.01ns
just
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
just send int
144.07ns
144.236
1.00
762.97ns
just send variadic
178.98ns
186.251
0.96
822.16ns
last
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
last construction from observable via dot + subscribe
247.66ns
None
.
604.40ns
sending of values from observable via last to subscriber
1.67ns
None
.
6.15ns
map
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
map construction from observable via dot + subscribe
157.40ns
156.691
1.00
340.15ns
sending of values from observable via map to subscriber
1.34ns
0.950847
1.41
2.68ns
merge
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
merge
1516.25ns
1561.48
0.97
3851.10ns
merge_with
1881.74ns
1902.51
0.99
4166.36ns
observe_on
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
observe_on construction from observable via dot + subscribe
763.64ns
756.762
1.01
2894.17ns
sending of values from observable via observe_on to subscriber
89.73ns
90.388
0.99
249.56ns
publish_subject callbacks
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
on_next
22.42ns
22.741
0.99
12.23ns
on_error
2.20ns
2.4434
0.90
16.80ns
on_completed
0.67ns
0.674171
1.00
0.67ns
publish_subject routines
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
construct
163.57ns
170.88
0.96
171.71ns
get_observable
29.42ns
29.4206
1.00
48.70ns
get_subscriber
57.41ns
57.2196
1.00
23.05ns
repeat
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
repeat construction from observable via dot + subscribe
3962.86ns
3954.15
1.00
3148.78ns
scan
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
scan construction from observable via dot + subscribe
192.33ns
189.751
1.01
389.92ns
sending of values from observable via scan to subscriber
3.01ns
3.01427
1.00
2.34ns
skip
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
skip construction from observable via dot + subscribe
187.46ns
189.806
0.99
559.36ns
sending of values from observable via skip to subscriber
3.69ns
3.01571
1.22
2.34ns
switch_on_next
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
switch_on_next construction from observable via dot + subscribe
16843.70ns
15439.1
1.09
4422.40ns
sending of values from observable via switch_on_next to subscriber
586.62ns
566.406
1.04
1085.31ns
take
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
take construction from observable via dot + subscribe
245.66ns
244.787
1.00
590.00ns
sending of values from observable via take to subscriber
5.22ns
3.69029
1.42
3.54ns
trampoline scheduler
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
no any re-schedule
40.49ns
40.3178
1.00
187.83ns
re-schedule 10 times
652.30ns
650.852
1.00
216.43ns
recursively schedule 10 times
1717.49ns
1706.95
1.01
6415.96ns
window
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
window
2112.39ns
2099.55
1.01
3233.18ns
sending of values from observable via window to subscriber
549.90ns
545.603
1.01
422.77ns
with_latest_from
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
with_latest_from construction from observable via dot + subscribe
856.27ns
844.586
1.01
1431.72ns
sending of values from observable via with_latest_from to subscriber
18.05ns
18.0433
1.00
4.19ns
Windows MSVC
Observable construction
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
Specific observable construction
1.68ns
1.50415
1.12
0.80ns
Dynamic observable construction
95.83ns
93.3754
1.03
149.41ns
Specific observable construction + as_dynamic
95.00ns
89.2148
1.06
150.09ns
Observable lift
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
Specific observable lift specific observer
277.29ns
253.873
1.09
1370.22ns
Specific observable lift dynamic observer
288.23ns
262.48
1.10
1423.23ns
Dynamic observable lift specific observer
443.97ns
366.743
1.21
1666.45ns
Dynamic observable lift dynamic observer
385.44ns
320.513
1.20
1544.24ns
Observable subscribe
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
Specific observable subscribe specific observer
218.00ns
200.031
1.09
1393.65ns
Specific observable subscribe dynamic observer
255.05ns
209.081
1.22
1366.70ns
Dynamic observable subscribe specific observer
379.30ns
320.963
1.18
1497.26ns
Dynamic observable subscribe dynamic observer
305.54ns
262.856
1.16
1458.09ns
Observable subscribe #2
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
Specific observable subscribe lambda
227.54ns
197.767
1.15
1404.48ns
Dynamic observable subscribe lambda
381.24ns
318.37
1.20
1585.20ns
Specific observable subscribe lambda without subscription
223.85ns
400.547
0.56
1802.48ns
Dynamic observable subscribe lambda without subscription
361.33ns
369.475
0.98
1642.26ns
Specific observable subscribe specific subscriber
127.98ns
101.98
1.25
1008.13ns
Dynamic observable subscribe specific subscriber
275.92ns
228.333
1.21
1253.88ns
Specific observable subscribe dynamic observer
127.30ns
102.183
1.25
1048.90ns
Dynamic observable subscribe dynamic observer
189.59ns
155.476
1.22
1125.56ns
Observer construction
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
Specific observer construction
2.20ns
1.50466
1.46
1.80ns
Dynamic observer construction
90.88ns
88.8281
1.02
138.13ns
Specific observer construction + as_dynamic
97.65ns
88.8112
1.10
137.00ns
OnNext
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
Specific observer OnNext
0.79ns
0.668748
1.18
0.78ns
Dynamic observer OnNext
2.38ns
2.00683
1.19
2.03ns
Subscriber construction
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
Make subsriber
96.54ns
88.6491
1.09
406.48ns
Make copy of subscriber
17.02ns
16.7189
1.02
36.51ns
Transform subsriber to dynamic
110.71ns
104.498
1.06
167.64ns
Subscription
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
composite_subscription create
102.19ns
88.2014
1.16
384.51ns
composite_subscription add
71.56ns
57.8047
1.24
74.58ns
composite_subscription unsubscribe
8.29ns
8.36114
0.99
31.32ns
composite_subscription unsubscribe only subscribed
8.16ns
7.22818
1.13
30.28ns
buffer
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
buffer
592.18ns
492.354
1.20
8094.75ns
sending of values from observable via buffer to subscriber
6.15ns
6.06182
1.01
110.72ns
chains creation test
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
long non-state chain creation + subscribe
422.05ns
352.446
1.20
1987.47ns
long stateful chain creation + subscribe
858.41ns
773.581
1.11
3752.62ns
concat
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
concat
2469.50ns
2087.25
1.18
15300.50ns
concat_with
4639.90ns
2743.4
1.69
16763.00ns
distinct_until_changed
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
distinct_until_changed construction from observable via dot + subscribe
294.27ns
257.64
1.14
1188.65ns
sending of values from observable via distinct_until_changed to subscriber
3.83ns
3.7189
1.03
4.83ns
foundamental sources
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
empty
167.58ns
138.211
1.21
2888.36ns
error
214.59ns
189.096
1.13
2851.09ns
never
128.38ns
109.428
1.17
990.85ns
from
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
from vector with int
255.05ns
209.386
1.22
2953.45ns
immediate scheduler
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
no any re-schedule
33.32ns
27.4301
1.21
492.59ns
re-schedule 10 times
635.26ns
570.622
1.11
509.65ns
just
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
just send int
174.56ns
161.348
1.08
7385.73ns
just send variadic
199.19ns
182.798
1.09
2865.45ns
last
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
last construction from observable via dot + subscribe
428.26ns
None
.
7718.00ns
sending of values from observable via last to subscriber
3.16ns
None
.
12.98ns
map
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
map construction from observable via dot + subscribe
182.39ns
163.948
1.11
1154.25ns
sending of values from observable via map to subscriber
4.19ns
3.92174
1.07
6.97ns
merge
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
merge
2242.75ns
2166.17
1.04
18860.50ns
merge_with
3106.90ns
2836.44
1.10
17616.50ns
observe_on
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
observe_on construction from observable via dot + subscribe
1282.77ns
1013.48
1.27
5895.80ns
sending of values from observable via observe_on to subscriber
99.28ns
90.2344
1.10
949.23ns
publish_subject callbacks
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
on_next
22.97ns
19.9097
1.15
37.81ns
on_error
3.24ns
2.70319
1.20
27.15ns
on_completed
3.23ns
2.69455
1.20
1.53ns
publish_subject routines
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
construct
320.39ns
280.859
1.14
702.60ns
get_observable
47.15ns
25.9604
1.82
193.19ns
get_subscriber
58.34ns
50.2024
1.16
111.94ns
repeat
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
repeat construction from observable via dot + subscribe
6923.20ns
5953.0
1.16
12930.00ns
scan
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
scan construction from observable via dot + subscribe
303.62ns
269.774
1.13
2236.27ns
sending of values from observable via scan to subscriber
6.44ns
5.50271
1.17
10.60ns
skip
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
skip construction from observable via dot + subscribe
271.44ns
251.206
1.08
1841.50ns
sending of values from observable via skip to subscriber
4.88ns
3.42815
1.42
4.33ns
switch_on_next
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
switch_on_next construction from observable via dot + subscribe
3780.00ns
3164.5
1.19
14866.30ns
sending of values from observable via switch_on_next to subscriber
751.75ns
821.206
0.92
3675.78ns
take
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
take construction from observable via dot + subscribe
487.64ns
315.77
1.54
2538.38ns
sending of values from observable via take to subscriber
6.01ns
6.21362
0.97
7.12ns
trampoline scheduler
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
no any re-schedule
51.75ns
44.1892
1.17
692.34ns
re-schedule 10 times
728.90ns
608.881
1.20
777.74ns
recursively schedule 10 times
3659.11ns
3008.11
1.22
22652.00ns
window
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
window
3514.11ns
2924.67
1.20
16485.00ns
sending of values from observable via window to subscriber
920.58ns
804.125
1.14
1861.88ns
with_latest_from
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
with_latest_from construction from observable via dot + subscribe
1942.78ns
1455.63
1.33
4703.33ns
sending of values from observable via with_latest_from to subscriber
32.82ns
29.2174
1.12
8.85ns
Merging #223 (05ff084) into main (cd8da3d) will increase coverage by 0.01%
.
The diff coverage is 100.00%
.
:exclamation: Current head 05ff084 differs from pull request most recent head 5c835f0. Consider uploading reports for the commit 5c835f0 to get more accurate results
@@ Coverage Diff @@
## main #223 +/- ##
==========================================
+ Coverage 98.54% 98.56% +0.01%
==========================================
Files 95 97 +2
Lines 1376 1392 +16
==========================================
+ Hits 1356 1372 +16
Misses 20 20
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more
Same as for first
i prefer re-using take_last
for on_next. But let me to implement take_last
by my own because I have some ideas about doing it in the more optimal way than in rxcpp
BENCHMARK RESULTS (AUTOGENERATED)
ci-ubuntu-clang
Observable construction
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
Specific observable construction
0.30ns
0.323516
0.92
0.29ns
Dynamic observable construction
25.32ns
28.1991
0.90
21.48ns
Specific observable construction + as_dynamic
25.86ns
41.0765
0.63
21.75ns
Observable lift
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
Specific observable lift specific observer
100.17ns
120.813
0.83
256.80ns
Specific observable lift dynamic observer
118.93ns
136.373
0.87
272.43ns
Dynamic observable lift specific observer
164.06ns
187.682
0.87
293.78ns
Dynamic observable lift dynamic observer
170.71ns
191.903
0.89
286.85ns
Observable subscribe
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
Specific observable subscribe specific observer
66.74ns
80.7699
0.83
251.75ns
Specific observable subscribe dynamic observer
81.25ns
97.2275
0.84
260.62ns
Dynamic observable subscribe specific observer
134.65ns
145.226
0.93
288.12ns
Dynamic observable subscribe dynamic observer
120.52ns
146.838
0.82
276.80ns
Observable subscribe #2
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
Specific observable subscribe lambda
62.70ns
90.1194
0.70
252.96ns
Dynamic observable subscribe lambda
125.56ns
148.046
0.85
269.54ns
Specific observable subscribe lambda without subscription
68.39ns
88.7771
0.77
254.73ns
Dynamic observable subscribe lambda without subscription
123.85ns
167.251
0.74
288.01ns
Specific observable subscribe specific subscriber
36.47ns
44.2592
0.82
188.34ns
Dynamic observable subscribe specific subscriber
95.19ns
102.728
0.93
236.60ns
Specific observable subscribe dynamic observer
38.38ns
51.6203
0.74
203.96ns
Dynamic observable subscribe dynamic observer
83.12ns
103.708
0.80
213.36ns
Observer construction
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
Specific observer construction
0.29ns
0.380775
0.77
0.29ns
Dynamic observer construction
25.80ns
32.8731
0.78
18.66ns
Specific observer construction + as_dynamic
26.49ns
32.6141
0.81
18.54ns
OnNext
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
Specific observer OnNext
0.60ns
0.649991
0.92
0.59ns
Dynamic observer OnNext
1.48ns
1.96814
0.75
2.05ns
Subscriber construction
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
Make subsriber
30.26ns
41.6186
0.73
56.88ns
Make copy of subscriber
14.63ns
17.6231
0.83
4.16ns
Transform subsriber to dynamic
38.40ns
42.6318
0.90
23.17ns
Subscription
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
composite_subscription create
30.00ns
38.9427
0.77
46.81ns
composite_subscription add
42.87ns
51.991
0.82
81.75ns
composite_subscription unsubscribe
39.13ns
52.4097
0.75
20.63ns
buffer
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
buffer
235.46ns
270.507
0.87
1615.30ns
sending of values from observable via buffer to subscriber
5.62ns
7.55943
0.74
24.16ns
chains creation test
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
long non-state chain creation + subscribe
249.60ns
284.766
0.88
443.49ns
long stateful chain creation + subscribe
354.04ns
398.929
0.89
706.04ns
combine_latest
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
combine_latest construction from observable via dot + subscribe
684.12ns
884.037
0.77
758.92ns
sending of values from observable via combine_latest to subscriber
15.95ns
21.3583
0.75
2.07ns
concat
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
concat
1528.01ns
1904.89
0.80
2878.62ns
concat_with
1783.26ns
2076.59
0.86
3166.24ns
distinct_until_changed
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
distinct_until_changed construction from observable via dot + subscribe
112.36ns
128.863
0.87
227.13ns
sending of values from observable via distinct_until_changed to subscriber
2.01ns
2.5762
0.78
1.18ns
first
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
first construction from observable via dot + subscribe
126.70ns
148.79
0.85
512.81ns
sending of values from observable via first to subscriber
0.59ns
0.486622
1.22
0.59ns
foundamental sources
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
empty
71.94ns
93.5784
0.77
544.88ns
error
119.30ns
134.808
0.88
659.21ns
never
40.58ns
47.7103
0.85
219.85ns
from
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
from vector with int
82.08ns
108.015
0.76
570.89ns
immediate scheduler
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
no any re-schedule
1.18ns
0.583561
2.03
96.42ns
re-schedule 10 times
9.68ns
10.2725
0.94
129.84ns
just
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
just send int
76.62ns
98.4355
0.78
552.69ns
just send variadic
103.23ns
125.799
0.82
654.52ns
last
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
last construction from observable via dot + subscribe
167.15ns
None
.
300.44ns
sending of values from observable via last to subscriber
2.38ns
None
.
1.41ns
map
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
map construction from observable via dot + subscribe
77.38ns
93.364
0.83
219.91ns
sending of values from observable via map to subscriber
0.81ns
1.13018
0.72
2.07ns
merge
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
merge
1452.33ns
1805.42
0.80
2888.92ns
merge_with
1660.51ns
1949.88
0.85
3155.69ns
observe_on
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
observe_on construction from observable via dot + subscribe
495.45ns
641.741
0.77
2374.77ns
sending of values from observable via observe_on to subscriber
73.43ns
91.0424
0.81
172.01ns
publish_subject callbacks
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
on_next
20.80ns
25.3793
0.82
9.88ns
on_error
0.60ns
0.490708
1.22
17.12ns
on_completed
0.60ns
0.520424
1.15
0.58ns
publish_subject routines
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
construct
168.15ns
200.164
0.84
158.44ns
get_observable
23.05ns
30.5724
0.75
55.18ns
get_subscriber
51.95ns
69.2611
0.75
11.54ns
repeat
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
repeat construction from observable via dot + subscribe
3502.02ns
3906.74
0.90
2713.92ns
scan
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
scan construction from observable via dot + subscribe
111.56ns
183.491
0.61
264.68ns
sending of values from observable via scan to subscriber
1.79ns
2.58534
0.69
2.07ns
skip
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
skip construction from observable via dot + subscribe
106.41ns
128.149
0.83
411.89ns
sending of values from observable via skip to subscriber
1.77ns
1.94734
0.91
1.76ns
switch_on_next
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
switch_on_next construction from observable via dot + subscribe
1879.01ns
2469.39
0.76
2441.24ns
sending of values from observable via switch_on_next to subscriber
476.16ns
604.832
0.79
560.58ns
take
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
take construction from observable via dot + subscribe
163.87ns
209.677
0.78
434.60ns
sending of values from observable via take to subscriber
2.08ns
3.26794
0.64
2.33ns
take_last
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
take_last construction from observable via dot + subscribe
197.56ns
282.851
0.70
462.25ns
sending of values from observable via take_last to subscriber
2.58ns
3.33278
0.77
3.07ns
take_until
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
take_until construction from observable via dot + subscribe
839.46ns
1203.97
0.70
1047.28ns
sending of values from observable via take_until to subscriber
15.65ns
22.8515
0.68
1.58ns
trampoline scheduler
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
no any re-schedule
12.42ns
11.0589
1.12
142.62ns
re-schedule 10 times
30.39ns
31.808
0.96
170.84ns
recursively schedule 10 times
1249.74ns
1487.64
0.84
4877.87ns
window
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
window
1775.81ns
2494.4
0.71
2815.02ns
sending of values from observable via window to subscriber
483.43ns
564.543
0.86
323.24ns
with_latest_from
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
with_latest_from construction from observable via dot + subscribe
853.04ns
949.662
0.90
1025.27ns
sending of values from observable via with_latest_from to subscriber
30.81ns
35.3627
0.87
2.66ns
ci-ubuntu-gcc
Observable construction
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
Specific observable construction
0.34ns
0.335934
1.00
0.33ns
Dynamic observable construction
31.44ns
31.4986
1.00
22.78ns
Specific observable construction + as_dynamic
31.49ns
31.5833
1.00
23.32ns
Observable lift
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
Specific observable lift specific observer
118.61ns
119.014
1.00
333.54ns
Specific observable lift dynamic observer
145.82ns
144.94
1.01
347.38ns
Dynamic observable lift specific observer
198.25ns
199.558
0.99
403.89ns
Dynamic observable lift dynamic observer
211.83ns
207.748
1.02
364.83ns
Observable subscribe
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
Specific observable subscribe specific observer
83.05ns
83.4765
0.99
324.35ns
Specific observable subscribe dynamic observer
95.38ns
95.3867
1.00
329.18ns
Dynamic observable subscribe specific observer
149.57ns
147.998
1.01
363.60ns
Dynamic observable subscribe dynamic observer
148.10ns
146.116
1.01
354.74ns
Observable subscribe #2
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
Specific observable subscribe lambda
83.49ns
83.4752
1.00
327.15ns
Dynamic observable subscribe lambda
150.29ns
150.308
1.00
382.63ns
Specific observable subscribe lambda without subscription
83.67ns
85.5131
0.98
323.60ns
Dynamic observable subscribe lambda without subscription
150.61ns
148.983
1.01
369.54ns
Specific observable subscribe specific subscriber
50.27ns
50.794
0.99
270.91ns
Dynamic observable subscribe specific subscriber
117.41ns
117.885
1.00
312.69ns
Specific observable subscribe dynamic observer
49.97ns
49.8905
1.00
274.42ns
Dynamic observable subscribe dynamic observer
105.14ns
102.557
1.03
300.88ns
Observer construction
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
Specific observer construction
0.34ns
0.335034
1.00
0.33ns
Dynamic observer construction
31.57ns
31.4737
1.00
20.87ns
Specific observer construction + as_dynamic
31.53ns
31.4875
1.00
20.34ns
OnNext
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
Specific observer OnNext
0.34ns
0.335289
1.00
0.33ns
Dynamic observer OnNext
2.01ns
1.67423
1.20
2.01ns
Subscriber construction
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
Make subsriber
34.44ns
34.5906
1.00
62.43ns
Make copy of subscriber
16.71ns
16.774
1.00
4.50ns
Transform subsriber to dynamic
44.53ns
44.3447
1.00
25.41ns
Subscription
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
composite_subscription create
34.49ns
34.4967
1.00
55.82ns
composite_subscription add
48.64ns
47.3613
1.03
98.89ns
composite_subscription unsubscribe
41.98ns
41.5508
1.01
22.02ns
buffer
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
buffer
255.21ns
252.493
1.01
1902.96ns
sending of values from observable via buffer to subscriber
6.69ns
6.84533
0.98
30.60ns
chains creation test
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
long non-state chain creation + subscribe
308.02ns
300.238
1.03
689.68ns
long stateful chain creation + subscribe
435.70ns
436.847
1.00
1071.85ns
combine_latest
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
combine_latest construction from observable via dot + subscribe
821.26ns
811.896
1.01
1114.60ns
sending of values from observable via combine_latest to subscriber
18.39ns
18.097
1.02
2.34ns
concat
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
concat
1778.02ns
1788.42
0.99
3594.49ns
concat_with
2043.76ns
2043.68
1.00
4048.30ns
distinct_until_changed
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
distinct_until_changed construction from observable via dot + subscribe
137.02ns
147.063
0.93
351.66ns
sending of values from observable via distinct_until_changed to subscriber
4.18ns
3.99769
1.05
1.34ns
first
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
first construction from observable via dot + subscribe
161.73ns
158.565
1.02
699.64ns
sending of values from observable via first to subscriber
0.67ns
0.670827
1.00
1.01ns
foundamental sources
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
empty
87.14ns
87.1401
1.00
733.84ns
error
135.52ns
131.673
1.03
838.76ns
never
49.56ns
49.4702
1.00
284.03ns
from
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
from vector with int
105.76ns
106.529
0.99
763.50ns
immediate scheduler
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
no any re-schedule
1.68ns
1.67463
1.00
130.68ns
re-schedule 10 times
22.77ns
22.8072
1.00
163.44ns
just
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
just send int
90.25ns
90.2746
1.00
764.19ns
just send variadic
128.03ns
131.352
0.97
818.90ns
last
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
last construction from observable via dot + subscribe
198.78ns
None
.
429.38ns
sending of values from observable via last to subscriber
2.10ns
None
.
1.34ns
map
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
map construction from observable via dot + subscribe
100.73ns
101.28
0.99
337.79ns
sending of values from observable via map to subscriber
0.98ns
0.974787
1.00
2.35ns
merge
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
merge
1695.46ns
1684.98
1.01
4025.42ns
merge_with
1961.59ns
1965.67
1.00
4021.17ns
observe_on
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
observe_on construction from observable via dot + subscribe
612.16ns
604.141
1.01
2824.12ns
sending of values from observable via observe_on to subscriber
90.58ns
90.0608
1.01
238.23ns
publish_subject callbacks
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
on_next
22.42ns
22.7697
0.98
9.97ns
on_error
0.67ns
0.674579
1.00
16.83ns
on_completed
1.35ns
0.673132
2.00
1.01ns
publish_subject routines
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
construct
211.38ns
213.933
0.99
173.76ns
get_observable
29.46ns
29.405
1.00
48.12ns
get_subscriber
57.45ns
57.3943
1.00
23.15ns
repeat
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
repeat construction from observable via dot + subscribe
4116.18ns
4103.21
1.00
3158.54ns
scan
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
scan construction from observable via dot + subscribe
139.86ns
135.215
1.03
386.45ns
sending of values from observable via scan to subscriber
3.35ns
3.68591
0.91
1.68ns
skip
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
skip construction from observable via dot + subscribe
134.03ns
133.77
1.00
539.09ns
sending of values from observable via skip to subscriber
2.68ns
2.68409
1.00
2.35ns
switch_on_next
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
switch_on_next construction from observable via dot + subscribe
2174.24ns
2175.4
1.00
4311.77ns
sending of values from observable via switch_on_next to subscriber
559.84ns
552.752
1.01
1094.94ns
take
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
take construction from observable via dot + subscribe
191.47ns
192.07
1.00
585.18ns
sending of values from observable via take to subscriber
4.33ns
4.87527
0.89
4.07ns
take_last
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
take_last construction from observable via dot + subscribe
231.23ns
230.811
1.00
631.92ns
sending of values from observable via take_last to subscriber
3.08ns
3.3792
0.91
5.96ns
take_until
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
take_until construction from observable via dot + subscribe
977.49ns
978.509
1.00
1645.55ns
sending of values from observable via take_until to subscriber
17.75ns
17.7145
1.00
1.79ns
trampoline scheduler
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
no any re-schedule
21.59ns
21.3862
1.01
183.69ns
re-schedule 10 times
49.40ns
48.6206
1.02
214.18ns
recursively schedule 10 times
1421.11ns
1475.51
0.96
6498.48ns
window
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
window
2129.69ns
2153.83
0.99
3228.94ns
sending of values from observable via window to subscriber
582.74ns
586.032
0.99
416.41ns
with_latest_from
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
with_latest_from construction from observable via dot + subscribe
1005.47ns
1004.33
1.00
1368.90ns
sending of values from observable via with_latest_from to subscriber
35.13ns
35.1011
1.00
4.02ns
ci-windows
Observable construction
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
Specific observable construction
1.81ns
1.50384
1.20
0.95ns
Dynamic observable construction
95.78ns
79.5692
1.20
152.73ns
Specific observable construction + as_dynamic
96.65ns
79.7905
1.21
151.03ns
Observable lift
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
Specific observable lift specific observer
207.25ns
174.738
1.19
1531.23ns
Specific observable lift dynamic observer
243.78ns
203.089
1.20
1535.19ns
Dynamic observable lift specific observer
362.70ns
301.429
1.20
1924.32ns
Dynamic observable lift dynamic observer
327.06ns
262.26
1.25
1610.10ns
Observable subscribe
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
Specific observable subscribe specific observer
164.32ns
138.519
1.19
1602.59ns
Specific observable subscribe dynamic observer
188.68ns
152.566
1.24
1456.00ns
Dynamic observable subscribe specific observer
311.50ns
256.99
1.21
1606.75ns
Dynamic observable subscribe dynamic observer
261.93ns
202.048
1.30
1499.71ns
Observable subscribe #2
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
Specific observable subscribe lambda
169.76ns
138.706
1.22
1441.29ns
Dynamic observable subscribe lambda
341.49ns
256.556
1.33
1632.37ns
Specific observable subscribe lambda without subscription
165.60ns
140.071
1.18
1405.00ns
Dynamic observable subscribe lambda without subscription
327.02ns
257.592
1.27
1623.45ns
Specific observable subscribe specific subscriber
59.00ns
49.1641
1.20
1029.00ns
Dynamic observable subscribe specific subscriber
202.71ns
164.351
1.23
1245.19ns
Specific observable subscribe dynamic observer
63.63ns
58.3069
1.09
1072.28ns
Dynamic observable subscribe dynamic observer
121.35ns
101.094
1.20
1090.75ns
Observer construction
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
Specific observer construction
1.81ns
1.50375
1.21
1.80ns
Dynamic observer construction
109.71ns
81.6839
1.34
136.06ns
Specific observer construction + as_dynamic
98.14ns
81.6503
1.20
137.08ns
OnNext
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
Specific observer OnNext
0.85ns
0.669908
1.27
0.82ns
Dynamic observer OnNext
2.43ns
1.67437
1.45
2.48ns
Subscriber construction
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
Make subsriber
102.76ns
85.0067
1.21
425.03ns
Make copy of subscriber
21.17ns
16.7129
1.27
40.36ns
Transform subsriber to dynamic
118.98ns
95.9809
1.24
180.81ns
Subscription
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
composite_subscription create
101.65ns
84.5733
1.20
408.69ns
composite_subscription add
85.32ns
72.1739
1.18
197.49ns
composite_subscription unsubscribe
79.21ns
63.1571
1.25
149.18ns
buffer
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
buffer
456.61ns
384.492
1.19
5315.17ns
sending of values from observable via buffer to subscriber
7.75ns
6.75956
1.15
109.87ns
chains creation test
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
long non-state chain creation + subscribe
405.52ns
302.114
1.34
2108.93ns
long stateful chain creation + subscribe
843.03ns
688.857
1.22
3858.62ns
combine_latest
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
combine_latest construction from observable via dot + subscribe
2168.44ns
1517.59
1.43
4455.75ns
sending of values from observable via combine_latest to subscriber
43.97ns
36.1648
1.22
4.66ns
concat
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
concat
3143.00ns
2627.0
1.20
12922.30ns
concat_with
3849.00ns
3262.88
1.18
14029.30ns
distinct_until_changed
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
distinct_until_changed construction from observable via dot + subscribe
370.23ns
231.047
1.60
1240.60ns
sending of values from observable via distinct_until_changed to subscriber
4.02ns
3.67913
1.09
4.39ns
first
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
first construction from observable via dot + subscribe
175.96ns
146.345
1.20
3135.50ns
sending of values from observable via first to subscriber
2.93ns
2.74271
1.07
2.16ns
foundamental sources
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
empty
98.26ns
81.8468
1.20
2921.70ns
error
167.08ns
139.847
1.19
3117.18ns
never
65.76ns
50.9387
1.29
1062.42ns
from
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
from vector with int
188.79ns
161.908
1.17
2963.64ns
immediate scheduler
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
no any re-schedule
2.11ns
1.34157
1.57
487.19ns
re-schedule 10 times
117.35ns
101.167
1.16
526.47ns
just
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
just send int
175.96ns
88.7604
1.98
3087.70ns
just send variadic
152.71ns
128.627
1.19
3114.73ns
last
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
last construction from observable via dot + subscribe
290.47ns
None
.
2145.33ns
sending of values from observable via last to subscriber
3.84ns
None
.
4.40ns
map
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
map construction from observable via dot + subscribe
125.39ns
105.393
1.19
1259.70ns
sending of values from observable via map to subscriber
4.82ns
3.34479
1.44
8.89ns
merge
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
merge
2954.00ns
2486.1
1.19
13422.70ns
merge_with
4571.75ns
3591.33
1.27
13869.70ns
observe_on
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
observe_on construction from observable via dot + subscribe
1049.03ns
832.3
1.26
6910.00ns
sending of values from observable via observe_on to subscriber
107.93ns
86.1463
1.25
964.66ns
publish_subject callbacks
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
on_next
23.92ns
19.7219
1.21
38.97ns
on_error
3.33ns
3.38052
0.98
22.61ns
on_completed
3.24ns
2.70064
1.20
0.87ns
publish_subject routines
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
construct
445.74ns
355.361
1.25
726.82ns
get_observable
31.39ns
28.4189
1.10
198.98ns
get_subscriber
60.23ns
50.4135
1.19
111.34ns
repeat
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
repeat construction from observable via dot + subscribe
7253.20ns
6100.2
1.19
13363.30ns
scan
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
scan construction from observable via dot + subscribe
245.81ns
209.697
1.17
1491.82ns
sending of values from observable via scan to subscriber
8.04ns
5.37415
1.50
10.69ns
skip
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
skip construction from observable via dot + subscribe
233.51ns
194.609
1.20
1920.87ns
sending of values from observable via skip to subscriber
4.04ns
4.64621
0.87
4.03ns
switch_on_next
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
switch_on_next construction from observable via dot + subscribe
4831.29ns
3393.0
1.42
14258.70ns
sending of values from observable via switch_on_next to subscriber
984.03ns
826.625
1.19
3726.78ns
take
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
take construction from observable via dot + subscribe
296.60ns
251.711
1.18
2567.83ns
sending of values from observable via take to subscriber
7.05ns
5.49489
1.28
7.44ns
take_last
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
take_last construction from observable via dot + subscribe
412.82ns
351.348
1.17
2980.64ns
sending of values from observable via take_last to subscriber
5.13ns
4.26698
1.20
34.92ns
take_until
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
take_until construction from observable via dot + subscribe
1854.94ns
1576.24
1.18
6253.80ns
sending of values from observable via take_until to subscriber
50.09ns
29.7245
1.69
5.81ns
trampoline scheduler
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
no any re-schedule
24.42ns
20.5679
1.19
762.81ns
re-schedule 10 times
148.71ns
136.102
1.09
865.93ns
recursively schedule 10 times
3161.70ns
2691.78
1.17
22858.50ns
window
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
window
3757.78ns
2963.56
1.27
20321.00ns
sending of values from observable via window to subscriber
1038.84ns
842.207
1.23
1942.31ns
with_latest_from
Table
Test Name
Current, ns
Prev, ns
Ratio
RxCpp current, ns
with_latest_from construction from observable via dot + subscribe
2352.67ns
1922.75
1.22
4573.17ns
sending of values from observable via with_latest_from to subscriber
70.51ns
55.4177
1.27
8.26ns