Skip to content

Commit

Permalink
Tasks
Browse files Browse the repository at this point in the history
  • Loading branch information
victimsnino committed Sep 8, 2022
1 parent 876f4a1 commit 9be8285
Showing 1 changed file with 4 additions and 0 deletions.
4 changes: 4 additions & 0 deletions docs/Implementation Status.md
Original file line number Diff line number Diff line change
Expand Up @@ -157,3 +157,7 @@

# TODO:
- [ ] Add valid spinlock and use it in appropriate places to boost performance
- [ ] Add delay as feature request
- [ ] Add sample as feature request
- [ ] Polish take_until
- [ ] Polish earyly unsubscribe (check for unsubscription)

1 comment on commit 9be8285

@github-actions
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

BENCHMARK RESULTS (AUTOGENERATED)

ci-ubuntu-clang

Observable construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable construction 0.35ns 0.390252 0.89 0.34ns
Dynamic observable construction 28.24ns 42.8244 0.66 26.77ns
Specific observable construction + as_dynamic 30.31ns 34.2759 0.88 26.34ns

Observable lift

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable lift specific observer 123.76ns 139.147 0.89 300.60ns
Specific observable lift dynamic observer 135.76ns 198.902 0.68 305.15ns
Dynamic observable lift specific observer 181.52ns 211.745 0.86 365.90ns
Dynamic observable lift dynamic observer 192.28ns 237.427 0.81 355.44ns

Observable subscribe

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe specific observer 88.09ns 98.1558 0.90 327.63ns
Specific observable subscribe dynamic observer 100.59ns 110.027 0.91 317.37ns
Dynamic observable subscribe specific observer 155.05ns 176.517 0.88 337.31ns
Dynamic observable subscribe dynamic observer 149.57ns 193.515 0.77 388.21ns

Observable subscribe #2

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe lambda 82.00ns 106.946 0.77 293.81ns
Dynamic observable subscribe lambda 137.46ns 169.27 0.81 349.12ns
Specific observable subscribe lambda without subscription 91.54ns 96.1121 0.95 286.45ns
Dynamic observable subscribe lambda without subscription 143.58ns 164.585 0.87 339.51ns
Specific observable subscribe specific subscriber 42.81ns 54.9907 0.78 234.03ns
Dynamic observable subscribe specific subscriber 107.65ns 125.321 0.86 316.95ns
Specific observable subscribe dynamic observer 46.20ns 54.7454 0.84 241.87ns
Dynamic observable subscribe dynamic observer 111.12ns 117.887 0.94 277.12ns

Observer construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer construction 0.37ns 0.392187 0.94 0.34ns
Dynamic observer construction 29.40ns 33.6945 0.87 25.21ns
Specific observer construction + as_dynamic 31.37ns 33.8141 0.93 20.25ns

OnNext

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer OnNext 0.66ns 0.773877 0.85 0.65ns
Dynamic observer OnNext 2.26ns 2.37324 0.95 2.60ns

Subscriber construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Make subsriber 38.45ns 37.84 1.02 67.40ns
Make copy of subscriber 17.13ns 21.0214 0.81 5.24ns
Transform subsriber to dynamic 43.68ns 50.233 0.87 26.65ns

Subscription

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
composite_subscription create 40.41ns 39.2989 1.03 59.34ns
composite_subscription add 58.98ns 65.8485 0.90 103.07ns
composite_subscription unsubscribe 46.24ns 50.3225 0.92 23.80ns

buffer

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
buffer 294.33ns 321.186 0.92 2188.80ns
sending of values from observable via buffer to subscriber 7.69ns 10.6753 0.72 28.40ns

chains creation test

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
long non-state chain creation + subscribe 331.27ns 331.802 1.00 2304.16ns
long stateful chain creation + subscribe 437.51ns 466.867 0.94 876.55ns

combine_latest

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
combine_latest construction from observable via dot + subscribe 991.63ns 981.876 1.01 896.68ns
sending of values from observable via combine_latest to subscriber 21.08ns 23.0044 0.92 2.15ns

concat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
concat 1800.17ns 2066.72 0.87 3490.61ns
concat_with 2260.28ns 2438.32 0.93 4233.35ns

distinct_until_changed

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
distinct_until_changed construction from observable via dot + subscribe 143.61ns 144.561 0.99 255.71ns
sending of values from observable via distinct_until_changed to subscriber 2.28ns 3.35783 0.68 1.45ns

first

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
first construction from observable via dot + subscribe 148.87ns 181.262 0.82 686.97ns
sending of values from observable via first to subscriber 0.51ns 0.604672 0.84 0.50ns

foundamental sources

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
empty 91.35ns 107.585 0.85 718.64ns
error 145.17ns 156.85 0.93 803.15ns
never 53.88ns 61.0081 0.88 257.76ns

from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
from vector with int 98.91ns 123.29 0.80 709.78ns

immediate scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 0.55ns 0.579679 0.94 167.30ns
re-schedule 10 times 9.95ns 11.6984 0.85 160.16ns

just

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
just send int 88.74ns 101.512 0.87 672.77ns
just send variadic 111.62ns 134.481 0.83 761.72ns

map

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
map construction from observable via dot + subscribe 87.19ns 118.139 0.74 248.76ns
sending of values from observable via map to subscriber 1.07ns 1.05432 1.02 1.97ns

merge

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
merge 1878.70ns 1930.01 0.97 3293.99ns
merge_with 2151.49ns 2591.59 0.83 3878.98ns

observe_on

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
observe_on construction from observable via dot + subscribe 591.96ns 702.241 0.84 2538.32ns
sending of values from observable via observe_on to subscriber 83.87ns 93.7002 0.90 242.68ns

publish_subject callbacks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
on_next 27.76ns 28.9956 0.96 10.36ns
on_error 0.52ns 0.586204 0.89 23.14ns
on_completed 0.53ns 0.587479 0.90 0.50ns

publish_subject routines

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
construct 193.45ns 236.687 0.82 196.20ns
get_observable 26.80ns 33.6043 0.80 63.08ns
get_subscriber 57.93ns 77.1001 0.75 13.43ns

repeat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
repeat construction from observable via dot + subscribe 4256.98ns 4882.18 0.87 3152.19ns

scan

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
scan construction from observable via dot + subscribe 122.54ns 150.127 0.82 313.67ns
sending of values from observable via scan to subscriber 2.45ns 2.42063 1.01 2.26ns

skip

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
skip construction from observable via dot + subscribe 151.83ns 150.96 1.01 493.63ns
sending of values from observable via skip to subscriber 2.11ns 3.20421 0.66 2.06ns

switch_on_next

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
switch_on_next construction from observable via dot + subscribe 2145.92ns 2687.17 0.80 2828.54ns
sending of values from observable via switch_on_next to subscriber 548.67ns 681.881 0.80 726.76ns

take

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take construction from observable via dot + subscribe 196.68ns 226.126 0.87 540.28ns
sending of values from observable via take to subscriber 2.84ns 3.20484 0.89 2.66ns

take_last

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take_last construction from observable via dot + subscribe 260.15ns 295.141 0.88 631.29ns
sending of values from observable via take_last to subscriber 3.65ns 4.04305 0.90 4.24ns

take_until

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take_until construction from observable via dot + subscribe 1032.00ns None . 1382.69ns
sending of values from observable via take_until to subscriber 27.93ns None . 1.98ns

trampoline scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 12.92ns 15.4843 0.83 189.06ns
re-schedule 10 times 26.97ns 31.0608 0.87 234.96ns
recursively schedule 10 times 1495.57ns 1837.84 0.81 5609.98ns

window

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
window 2206.92ns 2386.32 0.92 3204.67ns
sending of values from observable via window to subscriber 562.74ns 690.27 0.82 386.22ns

with_latest_from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
with_latest_from construction from observable via dot + subscribe 998.50ns 1169.55 0.85 1273.66ns
sending of values from observable via with_latest_from to subscriber 37.41ns 45.5044 0.82 3.15ns

ci-ubuntu-gcc

Observable construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable construction 0.33ns 0.449031 0.73 0.33ns
Dynamic observable construction 33.24ns 25.9048 1.28 23.37ns
Specific observable construction + as_dynamic 29.27ns 26.6551 1.10 22.11ns

Observable lift

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable lift specific observer 178.84ns 102.997 1.74 394.72ns
Specific observable lift dynamic observer 174.70ns 150.985 1.16 456.73ns
Dynamic observable lift specific observer 237.04ns 172.965 1.37 486.77ns
Dynamic observable lift dynamic observer 231.09ns 203.497 1.14 431.72ns

Observable subscribe

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe specific observer 92.73ns 72.2049 1.28 387.16ns
Specific observable subscribe dynamic observer 104.81ns 89.7547 1.17 431.61ns
Dynamic observable subscribe specific observer 156.26ns 145.888 1.07 420.86ns
Dynamic observable subscribe dynamic observer 324.91ns 154.1 2.11 390.27ns

Observable subscribe #2

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe lambda 88.39ns 73.5442 1.20 363.11ns
Dynamic observable subscribe lambda 163.49ns 133.298 1.23 487.94ns
Specific observable subscribe lambda without subscription 94.52ns 73.6022 1.28 430.33ns
Dynamic observable subscribe lambda without subscription 168.20ns 152.208 1.11 409.45ns
Specific observable subscribe specific subscriber 53.40ns 46.7117 1.14 370.72ns
Dynamic observable subscribe specific subscriber 117.87ns 103.073 1.14 317.66ns
Specific observable subscribe dynamic observer 51.44ns 45.7792 1.12 284.45ns
Dynamic observable subscribe dynamic observer 116.92ns 107.479 1.09 300.95ns

Observer construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer construction 0.38ns 0.356989 1.05 0.34ns
Dynamic observer construction 28.53ns 25.0463 1.14 20.79ns
Specific observer construction + as_dynamic 28.50ns 25.6268 1.11 22.46ns

OnNext

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer OnNext 0.37ns 0.293483 1.26 0.37ns
Dynamic observer OnNext 2.13ns 1.6803 1.27 2.31ns

Subscriber construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Make subsriber 33.78ns 34.5516 0.98 58.22ns
Make copy of subscriber 16.85ns 18.4967 0.91 5.68ns
Transform subsriber to dynamic 42.70ns 45.4446 0.94 26.95ns

Subscription

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
composite_subscription create 38.64ns 40.2325 0.96 60.11ns
composite_subscription add 51.90ns 49.619 1.05 109.28ns
composite_subscription unsubscribe 50.09ns 43.0438 1.16 23.00ns

buffer

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
buffer 293.43ns 220.579 1.33 2004.14ns
sending of values from observable via buffer to subscriber 7.82ns 5.65997 1.38 33.49ns

chains creation test

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
long non-state chain creation + subscribe 337.14ns 307.012 1.10 829.26ns
long stateful chain creation + subscribe 537.27ns 427.58 1.26 1294.18ns

combine_latest

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
combine_latest construction from observable via dot + subscribe 932.04ns 969.554 0.96 1430.95ns
sending of values from observable via combine_latest to subscriber 18.10ns 22.3199 0.81 1.74ns

concat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
concat 1875.08ns 2041.76 0.92 3884.27ns
concat_with 2269.71ns 1799.94 1.26 4363.45ns

distinct_until_changed

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
distinct_until_changed construction from observable via dot + subscribe 173.93ns 125.71 1.38 428.25ns
sending of values from observable via distinct_until_changed to subscriber 3.73ns 3.89939 0.96 1.52ns

first

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
first construction from observable via dot + subscribe 198.24ns 142.364 1.39 807.29ns
sending of values from observable via first to subscriber 0.73ns 0.564324 1.29 0.56ns

foundamental sources

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
empty 102.50ns 82.3318 1.24 917.66ns
error 138.41ns 122.53 1.13 969.53ns
never 60.17ns 53.359 1.13 308.26ns

from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
from vector with int 122.80ns 101.537 1.21 805.82ns

immediate scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 0.99ns 0.811619 1.22 182.49ns
re-schedule 10 times 18.64ns 15.7092 1.19 156.62ns

just

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
just send int 105.13ns 92.9485 1.13 884.60ns
just send variadic 194.39ns 113.674 1.71 957.77ns

map

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
map construction from observable via dot + subscribe 120.59ns 89.7402 1.34 383.18ns
sending of values from observable via map to subscriber 1.00ns 0.74612 1.35 1.50ns

merge

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
merge 1951.85ns 1607.24 1.21 3977.38ns
merge_with 2413.33ns 1925.28 1.25 4001.13ns

observe_on

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
observe_on construction from observable via dot + subscribe 621.51ns 546.89 1.14 3307.92ns
sending of values from observable via observe_on to subscriber 91.76ns 76.7148 1.20 270.69ns

publish_subject callbacks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
on_next 22.96ns 22.4519 1.02 10.89ns
on_error 0.72ns 0.583855 1.23 17.89ns
on_completed 0.73ns 0.590368 1.24 0.65ns

publish_subject routines

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
construct 237.59ns 200.791 1.18 179.02ns
get_observable 31.90ns 36.87 0.87 54.93ns
get_subscriber 60.33ns 53.1483 1.14 22.74ns

repeat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
repeat construction from observable via dot + subscribe 4269.18ns 5022.32 0.85 3326.44ns

scan

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
scan construction from observable via dot + subscribe 147.29ns 118.763 1.24 414.73ns
sending of values from observable via scan to subscriber 4.88ns 4.21492 1.16 1.62ns

skip

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
skip construction from observable via dot + subscribe 133.80ns 176.932 0.76 604.02ns
sending of values from observable via skip to subscriber 3.13ns 3.09669 1.01 1.97ns

switch_on_next

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
switch_on_next construction from observable via dot + subscribe 2264.01ns 2276.47 0.99 5072.85ns
sending of values from observable via switch_on_next to subscriber 581.78ns 524.411 1.11 1226.83ns

take

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take construction from observable via dot + subscribe 221.64ns 177.568 1.25 699.34ns
sending of values from observable via take to subscriber 5.05ns 4.07683 1.24 3.28ns

take_last

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take_last construction from observable via dot + subscribe 261.12ns 215.293 1.21 770.68ns
sending of values from observable via take_last to subscriber 3.83ns 4.29423 0.89 6.75ns

take_until

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take_until construction from observable via dot + subscribe 1297.41ns None . 1962.18ns
sending of values from observable via take_until to subscriber 20.79ns None . 1.91ns

trampoline scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 26.22ns 28.8779 0.91 193.56ns
re-schedule 10 times 53.28ns 44.1854 1.21 215.08ns
recursively schedule 10 times 1670.52ns 1784.18 0.94 6946.41ns

window

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
window 2184.17ns 1842.73 1.19 4022.40ns
sending of values from observable via window to subscriber 725.08ns 510.278 1.42 491.22ns

with_latest_from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
with_latest_from construction from observable via dot + subscribe 1217.16ns 1064.97 1.14 1716.91ns
sending of values from observable via with_latest_from to subscriber 36.44ns 31.8653 1.14 4.41ns

ci-windows

Observable construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable construction 1.50ns 1.86644 0.81 0.67ns
Dynamic observable construction 79.98ns 95.8148 0.83 123.50ns
Specific observable construction + as_dynamic 80.22ns 96.0094 0.84 123.41ns

Observable lift

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable lift specific observer 175.57ns 208.03 0.84 1219.67ns
Specific observable lift dynamic observer 205.61ns 244.48 0.84 1271.65ns
Dynamic observable lift specific observer 303.85ns 360.023 0.84 1521.83ns
Dynamic observable lift dynamic observer 263.84ns 329.884 0.80 1298.75ns

Observable subscribe

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe specific observer 138.90ns 172.219 0.81 1176.91ns
Specific observable subscribe dynamic observer 153.83ns 182.667 0.84 1211.57ns
Dynamic observable subscribe specific observer 257.14ns 305.94 0.84 1367.11ns
Dynamic observable subscribe dynamic observer 204.63ns 242.492 0.84 1257.14ns

Observable subscribe #2

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe lambda 140.25ns 167.957 0.84 1176.91ns
Dynamic observable subscribe lambda 263.15ns 325.564 0.81 1355.21ns
Specific observable subscribe lambda without subscription 140.32ns 165.951 0.85 1180.68ns
Dynamic observable subscribe lambda without subscription 258.23ns 326.27 0.79 1352.63ns
Specific observable subscribe specific subscriber 49.22ns 58.9847 0.83 927.33ns
Dynamic observable subscribe specific subscriber 165.83ns 203.791 0.81 1029.36ns
Specific observable subscribe dynamic observer 52.67ns 62.6612 0.84 885.79ns
Dynamic observable subscribe dynamic observer 101.65ns 125.707 0.81 918.64ns

Observer construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer construction 1.50ns 1.80538 0.83 1.50ns
Dynamic observer construction 82.30ns 98.019 0.84 111.66ns
Specific observer construction + as_dynamic 81.97ns 126.297 0.65 111.72ns

OnNext

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer OnNext 0.67ns 0.804578 0.83 0.77ns
Dynamic observer OnNext 1.68ns 2.40991 0.70 2.01ns

Subscriber construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Make subsriber 86.89ns 101.544 0.86 349.81ns
Make copy of subscriber 16.73ns 21.083 0.79 31.50ns
Transform subsriber to dynamic 95.91ns 115.195 0.83 148.96ns

Subscription

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
composite_subscription create 86.22ns 102.461 0.84 341.67ns
composite_subscription add 70.86ns 84.4202 0.84 160.19ns
composite_subscription unsubscribe 63.09ns 89.1747 0.71 121.78ns

buffer

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
buffer 386.52ns 458.733 0.84 4536.00ns
sending of values from observable via buffer to subscriber 6.75ns 7.79225 0.87 91.41ns

chains creation test

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
long non-state chain creation + subscribe 287.50ns 339.948 0.85 1739.14ns
long stateful chain creation + subscribe 682.25ns 821.389 0.83 3184.75ns

combine_latest

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
combine_latest construction from observable via dot + subscribe 1519.38ns 1819.38 0.84 3007.00ns
sending of values from observable via combine_latest to subscriber 36.38ns 45.6449 0.80 4.14ns

concat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
concat 2644.30ns 3390.0 0.78 10675.00ns
concat_with 3265.88ns 4809.25 0.68 11671.00ns

distinct_until_changed

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
distinct_until_changed construction from observable via dot + subscribe 204.68ns 242.325 0.84 1027.35ns
sending of values from observable via distinct_until_changed to subscriber 3.68ns 4.67857 0.79 3.94ns

first

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
first construction from observable via dot + subscribe 145.81ns 176.898 0.82 2615.30ns
sending of values from observable via first to subscriber 2.68ns 2.81683 0.95 1.57ns

foundamental sources

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
empty 82.12ns 98.2373 0.84 2397.00ns
error 141.01ns 167.02 0.84 2473.90ns
never 51.07ns 61.2918 0.83 892.80ns

from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
from vector with int 163.85ns 188.206 0.87 2484.50ns

immediate scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 1.34ns 2.30549 0.58 418.18ns
re-schedule 10 times 97.82ns 117.341 0.83 441.69ns

just

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
just send int 88.54ns 108.923 0.81 2402.91ns
just send variadic 132.34ns 155.175 0.85 2487.70ns

map

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
map construction from observable via dot + subscribe 104.91ns 132.184 0.79 992.62ns
sending of values from observable via map to subscriber 3.34ns 3.8145 0.88 6.92ns

merge

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
merge 2465.36ns 2981.8 0.83 10992.00ns
merge_with 3095.33ns 4512.11 0.69 11724.00ns

observe_on

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
observe_on construction from observable via dot + subscribe 830.90ns 982.226 0.85 5848.80ns
sending of values from observable via observe_on to subscriber 86.13ns 107.363 0.80 863.94ns

publish_subject callbacks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
on_next 19.72ns 23.7043 0.83 32.44ns
on_error 3.38ns 4.05758 0.83 18.63ns
on_completed 2.72ns 3.3776 0.80 0.68ns

publish_subject routines

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
construct 361.74ns 631.267 0.57 587.00ns
get_observable 28.43ns 34.4894 0.82 164.15ns
get_subscriber 50.22ns 61.4898 0.82 93.84ns

repeat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
repeat construction from observable via dot + subscribe 6043.20ns 7308.5 0.83 11249.00ns

scan

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
scan construction from observable via dot + subscribe 208.21ns 267.325 0.78 1252.95ns
sending of values from observable via scan to subscriber 5.40ns 6.44734 0.84 8.81ns

skip

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
skip construction from observable via dot + subscribe 202.34ns 233.171 0.87 1538.47ns
sending of values from observable via skip to subscriber 4.68ns 4.65261 1.01 3.57ns

switch_on_next

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
switch_on_next construction from observable via dot + subscribe 3394.12ns 4047.43 0.84 12197.30ns
sending of values from observable via switch_on_next to subscriber 817.38ns 988.548 0.83 3098.00ns

take

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take construction from observable via dot + subscribe 248.91ns 299.868 0.83 2150.25ns
sending of values from observable via take to subscriber 5.59ns 7.49527 0.75 5.65ns

take_last

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take_last construction from observable via dot + subscribe 353.18ns 411.097 0.86 2462.82ns
sending of values from observable via take_last to subscriber 4.27ns 5.38206 0.79 21.86ns

take_until

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take_until construction from observable via dot + subscribe 1517.82ns None . 5235.60ns
sending of values from observable via take_until to subscriber 29.65ns None . 5.35ns

trampoline scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 20.25ns 25.0161 0.81 651.37ns
re-schedule 10 times 121.40ns 147.969 0.82 651.05ns
recursively schedule 10 times 2678.50ns 3573.2 0.75 19116.00ns

window

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
window 2967.56ns 3626.67 0.82 9752.00ns
sending of values from observable via window to subscriber 834.23ns 1023.07 0.82 1624.75ns

with_latest_from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
with_latest_from construction from observable via dot + subscribe 1952.54ns 4709.15 0.41 3744.17ns
sending of values from observable via with_latest_from to subscriber 54.82ns 65.2823 0.84 6.76ns

Please sign in to comment.