Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add more tests for trampoline scheduler #264

Merged
merged 5 commits into from
Sep 8, 2022

Conversation

tcw165
Copy link
Contributor

@tcw165 tcw165 commented Sep 8, 2022

No description provided.

@codecov
Copy link

codecov bot commented Sep 8, 2022

Codecov Report

Merging #264 (35a0f60) into main (a3f59ab) will increase coverage by 0.29%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main     #264      +/-   ##
==========================================
+ Coverage   98.20%   98.50%   +0.29%     
==========================================
  Files          93       93              
  Lines        1340     1340              
==========================================
+ Hits         1316     1320       +4     
+ Misses         24       20       -4     
Impacted Files Coverage Δ
src/rpp/rpp/schedulers/trampoline_scheduler.hpp 100.00% <ø> (+6.52%) ⬆️
src/rpp/rpp/schedulers/details/utils.hpp 92.30% <0.00%> (+7.69%) ⬆️

📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more

@github-actions
Copy link
Contributor

github-actions bot commented Sep 8, 2022

BENCHMARK RESULTS (AUTOGENERATED)

ci-ubuntu-clang

Observable construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable construction 0.36ns 0.402086 0.89 0.40ns
Dynamic observable construction 37.26ns 39.7993 0.94 29.36ns
Specific observable construction + as_dynamic 29.05ns 34.9898 0.83 29.54ns

Observable lift

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable lift specific observer 133.92ns 134.617 0.99 379.94ns
Specific observable lift dynamic observer 174.95ns 160.836 1.09 369.46ns
Dynamic observable lift specific observer 196.99ns 221.362 0.89 429.43ns
Dynamic observable lift dynamic observer 195.82ns 228.869 0.86 404.70ns

Observable subscribe

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe specific observer 94.59ns 92.8019 1.02 349.11ns
Specific observable subscribe dynamic observer 98.00ns 108.819 0.90 361.49ns
Dynamic observable subscribe specific observer 150.39ns 177.879 0.85 404.21ns
Dynamic observable subscribe dynamic observer 174.66ns 168.012 1.04 409.36ns

Observable subscribe #2

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe lambda 96.19ns 90.8162 1.06 334.11ns
Dynamic observable subscribe lambda 145.23ns 170.76 0.85 332.61ns
Specific observable subscribe lambda without subscription 78.00ns 90.8542 0.86 308.02ns
Dynamic observable subscribe lambda without subscription 142.01ns 166.802 0.85 364.78ns
Specific observable subscribe specific subscriber 47.32ns 51.8329 0.91 259.60ns
Dynamic observable subscribe specific subscriber 109.32ns 129.034 0.85 287.75ns
Specific observable subscribe dynamic observer 45.16ns 52.2559 0.86 281.60ns
Dynamic observable subscribe dynamic observer 103.41ns 112.844 0.92 337.20ns

Observer construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer construction 0.40ns 0.402048 1.00 0.41ns
Dynamic observer construction 29.15ns 34.9722 0.83 23.87ns
Specific observer construction + as_dynamic 30.39ns 35.0877 0.87 26.88ns

OnNext

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer OnNext 0.66ns 0.804439 0.82 0.79ns
Dynamic observer OnNext 2.26ns 2.01053 1.12 2.45ns

Subscriber construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Make subsriber 41.95ns 38.9864 1.08 79.23ns
Make copy of subscriber 18.40ns 20.0896 0.92 5.63ns
Transform subsriber to dynamic 47.41ns 52.3317 0.91 32.83ns

Subscription

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
composite_subscription create 38.50ns 39.0454 0.99 59.50ns
composite_subscription add 74.71ns 59.1726 1.26 105.82ns
composite_subscription unsubscribe 52.17ns 52.9548 0.99 28.11ns

buffer

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
buffer 263.23ns 320.144 0.82 2040.52ns
sending of values from observable via buffer to subscriber 7.63ns 7.64791 1.00 30.80ns

chains creation test

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
long non-state chain creation + subscribe 329.41ns 336.269 0.98 591.04ns
long stateful chain creation + subscribe 467.17ns 478.008 0.98 962.56ns

combine_latest

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
combine_latest construction from observable via dot + subscribe 843.75ns 926.359 0.91 1042.36ns
sending of values from observable via combine_latest to subscriber 19.98ns 21.7022 0.92 4.05ns

concat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
concat 1742.45ns 2073.26 0.84 3860.34ns
concat_with 1950.01ns 2358.79 0.83 4243.92ns

distinct_until_changed

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
distinct_until_changed construction from observable via dot + subscribe 124.08ns 152.968 0.81 309.79ns
sending of values from observable via distinct_until_changed to subscriber 3.15ns 2.81526 1.12 1.41ns

first

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
first construction from observable via dot + subscribe 177.84ns 169.164 1.05 722.98ns
sending of values from observable via first to subscriber 0.52ns 0.810199 0.64 0.52ns

foundamental sources

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
empty 91.79ns 100.731 0.91 793.36ns
error 139.50ns 161.487 0.86 1353.48ns
never 52.40ns 56.4356 0.93 325.65ns

from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
from vector with int 100.42ns 118.798 0.85 846.16ns

immediate scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 0.61ns 1.61587 0.38 119.95ns
re-schedule 10 times 11.11ns 13.7225 0.81 191.59ns

just

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
just send int 102.47ns 102.681 1.00 801.45ns
just send variadic 130.79ns 140.229 0.93 913.90ns

map

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
map construction from observable via dot + subscribe 88.36ns 106.849 0.83 302.86ns
sending of values from observable via map to subscriber 0.90ns 1.20554 0.74 1.79ns

merge

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
merge 2136.37ns 1998.77 1.07 3907.70ns
merge_with 2132.81ns 2306.35 0.92 4258.92ns

observe_on

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
observe_on construction from observable via dot + subscribe 681.91ns 700.363 0.97 3259.69ns
sending of values from observable via observe_on to subscriber 94.93ns 109.598 0.87 255.35ns

publish_subject callbacks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
on_next 27.91ns 28.9164 0.97 9.66ns
on_error 0.69ns 0.808666 0.85 20.21ns
on_completed 0.59ns 0.808634 0.73 0.55ns

publish_subject routines

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
construct 195.42ns 235.277 0.83 213.13ns
get_observable 34.21ns 31.7227 1.08 49.57ns
get_subscriber 68.73ns 69.8764 0.98 16.02ns

repeat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
repeat construction from observable via dot + subscribe 4738.60ns 4723.82 1.00 3986.53ns

scan

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
scan construction from observable via dot + subscribe 130.59ns 150.316 0.87 369.05ns
sending of values from observable via scan to subscriber 2.37ns 2.41141 0.98 2.07ns

skip

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
skip construction from observable via dot + subscribe 135.10ns 147.367 0.92 510.37ns
sending of values from observable via skip to subscriber 3.07ns 2.41327 1.27 2.57ns

switch_on_next

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
switch_on_next construction from observable via dot + subscribe 2134.01ns 2501.04 0.85 3888.28ns
sending of values from observable via switch_on_next to subscriber 690.61ns 641.725 1.08 839.98ns

take

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take construction from observable via dot + subscribe 222.79ns 221.855 1.00 574.47ns
sending of values from observable via take to subscriber 3.16ns 2.81685 1.12 2.65ns

take_last

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take_last construction from observable via dot + subscribe 237.52ns 273.358 0.87 627.79ns
sending of values from observable via take_last to subscriber 4.13ns 3.52448 1.17 4.27ns

trampoline scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 15.93ns 16.8997 0.94 175.73ns
re-schedule 10 times 32.71ns 40.758 0.80 229.96ns
recursively schedule 10 times 1862.35ns 1634.39 1.14 6340.64ns

window

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
window 2459.59ns 2422.84 1.02 3252.03ns
sending of values from observable via window to subscriber 555.09ns 653.195 0.85 422.20ns

with_latest_from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
with_latest_from construction from observable via dot + subscribe 1212.60ns 1135.3 1.07 1371.01ns
sending of values from observable via with_latest_from to subscriber 38.61ns 41.3714 0.93 3.68ns

ci-ubuntu-gcc

Observable construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable construction 0.40ns 0.404625 0.99 0.40ns
Dynamic observable construction 28.83ns 40.7054 0.71 22.49ns
Specific observable construction + as_dynamic 28.81ns 33.1997 0.87 21.63ns

Observable lift

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable lift specific observer 117.65ns 164.464 0.72 334.10ns
Specific observable lift dynamic observer 147.38ns 187.735 0.79 347.00ns
Dynamic observable lift specific observer 205.06ns 300.476 0.68 384.93ns
Dynamic observable lift dynamic observer 221.29ns 274.803 0.81 366.49ns

Observable subscribe

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe specific observer 79.29ns 119.429 0.66 328.04ns
Specific observable subscribe dynamic observer 95.41ns 152.377 0.63 329.36ns
Dynamic observable subscribe specific observer 149.08ns 191.05 0.78 361.82ns
Dynamic observable subscribe dynamic observer 150.94ns 186.752 0.81 349.82ns

Observable subscribe #2

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe lambda 79.45ns 115.355 0.69 323.47ns
Dynamic observable subscribe lambda 149.64ns 179.461 0.83 363.86ns
Specific observable subscribe lambda without subscription 79.23ns 100.803 0.79 325.15ns
Dynamic observable subscribe lambda without subscription 150.16ns 187.296 0.80 362.02ns
Specific observable subscribe specific subscriber 48.80ns 67.032 0.73 268.95ns
Dynamic observable subscribe specific subscriber 124.62ns 148.162 0.84 318.76ns
Specific observable subscribe dynamic observer 48.97ns 78.3783 0.62 277.19ns
Dynamic observable subscribe dynamic observer 104.66ns 143.247 0.73 291.08ns

Observer construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer construction 0.40ns 0.388082 1.04 0.40ns
Dynamic observer construction 29.22ns 44.2798 0.66 18.50ns
Specific observer construction + as_dynamic 29.56ns 45.9099 0.64 18.38ns

OnNext

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer OnNext 0.43ns 0.453237 0.95 0.43ns
Dynamic observer OnNext 1.61ns 2.97091 0.54 2.01ns

Subscriber construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Make subsriber 33.79ns 43.7785 0.77 52.96ns
Make copy of subscriber 16.09ns 22.9042 0.70 5.86ns
Transform subsriber to dynamic 44.66ns 65.2845 0.68 25.41ns

Subscription

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
composite_subscription create 33.93ns 48.789 0.70 49.63ns
composite_subscription add 50.17ns 64.8425 0.77 102.44ns
composite_subscription unsubscribe 43.64ns 50.5883 0.86 21.18ns

buffer

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
buffer 255.21ns 330.515 0.77 1929.62ns
sending of values from observable via buffer to subscriber 6.39ns 10.4073 0.61 26.21ns

chains creation test

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
long non-state chain creation + subscribe 326.73ns 424.13 0.77 758.71ns
long stateful chain creation + subscribe 454.82ns 555.359 0.82 1119.97ns

combine_latest

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
combine_latest construction from observable via dot + subscribe 832.91ns 1203.72 0.69 1155.53ns
sending of values from observable via combine_latest to subscriber 26.53ns 26.0825 1.02 1.61ns

concat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
concat 1867.13ns 2137.79 0.87 3972.93ns
concat_with 2147.39ns 2948.97 0.73 4417.62ns

distinct_until_changed

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
distinct_until_changed construction from observable via dot + subscribe 138.74ns 180.28 0.77 373.89ns
sending of values from observable via distinct_until_changed to subscriber 3.62ns 6.24738 0.58 1.30ns

first

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
first construction from observable via dot + subscribe 166.04ns 201.283 0.82 733.06ns
sending of values from observable via first to subscriber 0.80ns 0.687664 1.17 0.81ns

foundamental sources

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
empty 85.81ns 109.436 0.78 764.70ns
error 134.91ns 180.343 0.75 850.84ns
never 46.78ns 81.1405 0.58 275.27ns

from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
from vector with int 102.15ns 170.255 0.60 801.01ns

immediate scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 1.20ns 1.15414 1.04 130.24ns
re-schedule 10 times 19.97ns 21.7359 0.92 153.93ns

just

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
just send int 89.04ns 133.643 0.67 841.62ns
just send variadic 114.76ns 174.482 0.66 860.89ns

map

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
map construction from observable via dot + subscribe 109.47ns 129.895 0.84 350.15ns
sending of values from observable via map to subscriber 1.00ns 1.318 0.76 1.61ns

merge

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
merge 1824.15ns 2080.24 0.88 4174.81ns
merge_with 2083.08ns 2776.68 0.75 4512.91ns

observe_on

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
observe_on construction from observable via dot + subscribe 633.38ns 826.67 0.77 2690.76ns
sending of values from observable via observe_on to subscriber 92.28ns 98.2663 0.94 230.59ns

publish_subject callbacks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
on_next 29.81ns 30.643 0.97 7.64ns
on_error 0.81ns 0.878967 0.92 16.18ns
on_completed 0.81ns 0.805419 1.00 1.21ns

publish_subject routines

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
construct 213.06ns 238.837 0.89 150.19ns
get_observable 30.53ns 31.8906 0.96 46.41ns
get_subscriber 64.05ns 76.1409 0.84 21.33ns

repeat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
repeat construction from observable via dot + subscribe 4372.78ns 8099.7 0.54 3192.24ns

scan

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
scan construction from observable via dot + subscribe 136.04ns 195.457 0.70 395.79ns
sending of values from observable via scan to subscriber 3.61ns 5.42343 0.67 1.61ns

skip

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
skip construction from observable via dot + subscribe 133.54ns 163.04 0.82 533.22ns
sending of values from observable via skip to subscriber 3.22ns 3.63296 0.89 2.69ns

switch_on_next

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
switch_on_next construction from observable via dot + subscribe 2293.10ns 3215.54 0.71 4767.38ns
sending of values from observable via switch_on_next to subscriber 588.25ns 684.543 0.86 1146.81ns

take

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take construction from observable via dot + subscribe 193.27ns 233.904 0.83 609.01ns
sending of values from observable via take to subscriber 4.02ns 5.06938 0.79 2.96ns

take_last

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take_last construction from observable via dot + subscribe 232.62ns 300.647 0.77 662.16ns
sending of values from observable via take_last to subscriber 3.28ns 5.96085 0.55 6.36ns

trampoline scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 18.09ns 25.0472 0.72 184.46ns
re-schedule 10 times 41.63ns 56.2003 0.74 207.71ns
recursively schedule 10 times 1409.10ns 1785.64 0.79 6263.88ns

window

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
window 2244.82ns 2737.21 0.82 3376.49ns
sending of values from observable via window to subscriber 611.03ns 738.709 0.83 410.93ns

with_latest_from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
with_latest_from construction from observable via dot + subscribe 1025.28ns 1779.82 0.58 1480.82ns
sending of values from observable via with_latest_from to subscriber 46.51ns 49.2503 0.94 3.28ns

ci-windows

Observable construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable construction 2.04ns 1.6805 1.21 0.93ns
Dynamic observable construction 107.69ns 76.0608 1.42 160.71ns
Specific observable construction + as_dynamic 112.63ns 68.3091 1.65 206.14ns

Observable lift

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable lift specific observer 300.45ns 178.839 1.68 1651.78ns
Specific observable lift dynamic observer 243.59ns 173.672 1.40 1559.53ns
Dynamic observable lift specific observer 394.66ns 257.575 1.53 1917.19ns
Dynamic observable lift dynamic observer 336.57ns 223.707 1.50 1688.39ns

Observable subscribe

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe specific observer 179.13ns 126.787 1.41 1509.84ns
Specific observable subscribe dynamic observer 215.53ns 130.468 1.65 1482.50ns
Dynamic observable subscribe specific observer 314.17ns 251.68 1.25 1649.93ns
Dynamic observable subscribe dynamic observer 245.24ns 172.466 1.42 1770.06ns

Observable subscribe #2

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe lambda 184.16ns 135.663 1.36 1582.11ns
Dynamic observable subscribe lambda 315.71ns 228.796 1.38 1890.94ns
Specific observable subscribe lambda without subscription 165.21ns 132.709 1.24 1510.43ns
Dynamic observable subscribe lambda without subscription 360.62ns 219.968 1.64 1905.47ns
Specific observable subscribe specific subscriber 68.17ns 46.5921 1.46 1579.18ns
Dynamic observable subscribe specific subscriber 201.48ns 140.679 1.43 1334.83ns
Specific observable subscribe dynamic observer 64.74ns 50.3206 1.29 1207.76ns
Dynamic observable subscribe dynamic observer 133.94ns 87.5541 1.53 1225.58ns

Observer construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer construction 1.97ns 1.49865 1.32 2.16ns
Dynamic observer construction 126.93ns 78.2351 1.62 144.40ns
Specific observer construction + as_dynamic 107.52ns 70.2025 1.53 145.79ns

OnNext

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer OnNext 0.78ns 0.587168 1.33 0.80ns
Dynamic observer OnNext 2.59ns 1.72021 1.51 2.57ns

Subscriber construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Make subsriber 112.98ns 83.1692 1.36 455.98ns
Make copy of subscriber 17.77ns 14.8032 1.20 40.72ns
Transform subsriber to dynamic 117.75ns 90.2218 1.31 199.60ns

Subscription

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
composite_subscription create 104.66ns 80.3887 1.30 499.30ns
composite_subscription add 94.92ns 65.5216 1.45 208.89ns
composite_subscription unsubscribe 81.12ns 59.4396 1.36 159.56ns

buffer

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
buffer 486.03ns 350.367 1.39 5574.20ns
sending of values from observable via buffer to subscriber 8.22ns 6.1541 1.34 122.46ns

chains creation test

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
long non-state chain creation + subscribe 359.68ns 259.886 1.38 2092.25ns
long stateful chain creation + subscribe 906.36ns 1208.71 0.75 4151.17ns

combine_latest

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
combine_latest construction from observable via dot + subscribe 1923.07ns 1378.27 1.40 3857.83ns
sending of values from observable via combine_latest to subscriber 44.05ns 33.6393 1.31 5.15ns

concat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
concat 3573.67ns 2970.6 1.20 14606.00ns
concat_with 4061.00ns 2885.88 1.41 15571.00ns

distinct_until_changed

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
distinct_until_changed construction from observable via dot + subscribe 249.56ns 186.392 1.34 1597.05ns
sending of values from observable via distinct_until_changed to subscriber 4.47ns 3.28318 1.36 4.79ns

first

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
first construction from observable via dot + subscribe 178.82ns 130.732 1.37 3448.33ns
sending of values from observable via first to subscriber 3.09ns 2.2642 1.37 1.26ns

foundamental sources

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
empty 106.77ns 72.8433 1.47 2884.60ns
error 477.93ns 120.844 3.95 3395.00ns
never 71.89ns 44.6304 1.61 1159.21ns

from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
from vector with int 203.64ns 138.69 1.47 3015.44ns

immediate scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 1.62ns 1.50635 1.08 573.62ns
re-schedule 10 times 129.89ns 83.8101 1.55 561.11ns

just

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
just send int 112.76ns 76.7238 1.47 3285.00ns
just send variadic 156.86ns 125.187 1.25 3171.22ns

map

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
map construction from observable via dot + subscribe 123.09ns 92.6964 1.33 1239.17ns
sending of values from observable via map to subscriber 4.25ns 2.82904 1.50 9.30ns

merge

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
merge 3368.70ns 2689.27 1.25 14206.50ns
merge_with 4270.75ns 2815.33 1.52 14309.50ns

observe_on

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
observe_on construction from observable via dot + subscribe 1064.79ns 700.774 1.52 6941.50ns
sending of values from observable via observe_on to subscriber 106.62ns 69.1516 1.54 1087.74ns

publish_subject callbacks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
on_next 25.23ns 16.9215 1.49 42.16ns
on_error 3.55ns 2.89456 1.23 21.88ns
on_completed 2.94ns 2.482 1.18 0.80ns

publish_subject routines

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
construct 451.72ns 311.333 1.45 878.29ns
get_observable 32.98ns 25.6116 1.29 264.57ns
get_subscriber 68.33ns 43.0077 1.59 129.28ns

repeat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
repeat construction from observable via dot + subscribe 9441.75ns 5802.0 1.63 14929.00ns

scan

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
scan construction from observable via dot + subscribe 269.20ns 175.839 1.53 1630.28ns
sending of values from observable via scan to subscriber 6.66ns 5.08887 1.31 11.28ns

skip

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
skip construction from observable via dot + subscribe 267.06ns 179.824 1.49 2162.75ns
sending of values from observable via skip to subscriber 4.25ns 3.15552 1.35 5.21ns

switch_on_next

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
switch_on_next construction from observable via dot + subscribe 4066.00ns 3355.29 1.21 15190.50ns
sending of values from observable via switch_on_next to subscriber 1137.45ns 760.156 1.50 3889.88ns

take

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take construction from observable via dot + subscribe 324.17ns 213.414 1.52 2730.40ns
sending of values from observable via take to subscriber 8.40ns 5.98848 1.40 7.23ns

take_last

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take_last construction from observable via dot + subscribe 453.06ns 296.544 1.53 3140.33ns
sending of values from observable via take_last to subscriber 5.42ns 3.74848 1.45 26.47ns

trampoline scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 23.01ns 17.3039 1.33 819.03ns
re-schedule 10 times 166.33ns 218.943 0.76 802.86ns
recursively schedule 10 times 3732.67ns 2509.5 1.49 24610.50ns

window

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
window 3806.00ns 2996.78 1.27 14181.70ns
sending of values from observable via window to subscriber 1029.48ns 768.742 1.34 2055.80ns

with_latest_from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
with_latest_from construction from observable via dot + subscribe 2718.64ns 1736.92 1.57 4593.00ns
sending of values from observable via with_latest_from to subscriber 70.77ns 47.841 1.48 15.01ns

@sonarcloud
Copy link

sonarcloud bot commented Sep 8, 2022

Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 0 Code Smells

No Coverage information No Coverage information
0.0% 0.0% Duplication

@victimsnino victimsnino merged commit 2a52ebd into victimsnino:main Sep 8, 2022
@tcw165 tcw165 deleted the scheduler/trampoline branch September 9, 2022 16:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants