Skip to content

Make test_scheduler more smart#278

Merged
AlexInLog merged 1 commit into
mainfrom
update_test_scheduler
Sep 26, 2022
Merged

Make test_scheduler more smart#278
AlexInLog merged 1 commit into
mainfrom
update_test_scheduler

Conversation

@AlexInLog

Copy link
Copy Markdown
Owner

No description provided.

@codecov

codecov Bot commented Sep 26, 2022

Copy link
Copy Markdown

Codecov Report

Merging #278 (20a3a08) into main (b7daaf7) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #278   +/-   ##
=======================================
  Coverage   98.59%   98.59%           
=======================================
  Files         100      100           
  Lines        1419     1419           
=======================================
  Hits         1399     1399           
  Misses         20       20           

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

@github-actions

Copy link
Copy Markdown
Contributor

BENCHMARK RESULTS (AUTOGENERATED)

ci-ubuntu-clang

Observable construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable construction 0.34ns 0.303457 1.10 0.33ns
Dynamic observable construction 29.13ns 31.037 0.94 24.65ns
Specific observable construction + as_dynamic 29.13ns 33.7438 0.86 24.71ns

Observable lift

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable lift specific observer 112.25ns 139.16 0.81 293.09ns
Specific observable lift dynamic observer 136.68ns 162.989 0.84 308.84ns
Dynamic observable lift specific observer 183.27ns 225.662 0.81 333.50ns
Dynamic observable lift dynamic observer 193.08ns 259.799 0.74 324.25ns

Observable subscribe

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe specific observer 77.22ns 90.2922 0.86 285.40ns
Specific observable subscribe dynamic observer 88.17ns 90.5164 0.97 296.99ns
Dynamic observable subscribe specific observer 145.58ns 137.234 1.06 326.74ns
Dynamic observable subscribe dynamic observer 141.99ns 163.994 0.87 312.15ns

Observable subscribe #2

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe lambda 76.65ns 74.0241 1.04 287.52ns
Dynamic observable subscribe lambda 139.71ns 168.534 0.83 325.56ns
Specific observable subscribe lambda without subscription 76.58ns 94.9825 0.81 289.29ns
Dynamic observable subscribe lambda without subscription 142.22ns 135.87 1.05 327.51ns
Specific observable subscribe specific subscriber 43.18ns 58.6207 0.74 225.60ns
Dynamic observable subscribe specific subscriber 105.56ns 128.779 0.82 278.11ns
Specific observable subscribe dynamic observer 43.54ns 48.5686 0.90 240.55ns
Dynamic observable subscribe dynamic observer 96.45ns 96.5568 1.00 259.01ns

Observer construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer construction 0.33ns 0.324978 1.03 0.33ns
Dynamic observer construction 29.20ns 30.2721 0.96 21.47ns
Specific observer construction + as_dynamic 29.12ns 26.3945 1.10 21.08ns

OnNext

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer OnNext 0.67ns 0.660469 1.01 0.67ns
Dynamic observer OnNext 1.68ns 2.46779 0.68 2.35ns

Subscriber construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Make subsriber 34.15ns 40.6315 0.84 64.64ns
Make copy of subscriber 16.71ns 21.3113 0.78 4.71ns
Transform subsriber to dynamic 45.91ns 50.3781 0.91 26.62ns

Subscription

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
composite_subscription create 34.15ns 37.3975 0.91 52.45ns
composite_subscription add 49.99ns 66.1178 0.76 93.40ns
composite_subscription unsubscribe 43.65ns 45.1791 0.97 23.50ns

buffer

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
buffer 268.59ns 275.357 0.98 1826.36ns
sending of values from observable via buffer to subscriber 6.55ns 5.67401 1.15 27.40ns

chains creation test

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
long non-state chain creation + subscribe 268.44ns 305.285 0.88 493.34ns
long stateful chain creation + subscribe 400.67ns 439.494 0.91 826.30ns

combine_latest

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
combine_latest construction from observable via dot + subscribe 883.78ns 997.178 0.89 880.77ns
sending of values from observable via combine_latest to subscriber 27.59ns 38.6489 0.71 2.34ns

concat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
concat 1876.20ns 1803.82 1.04 3276.02ns
concat_with 2192.88ns 2095.51 1.05 3676.02ns

distinct_until_changed

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
distinct_until_changed construction from observable via dot + subscribe 128.47ns 124.883 1.03 248.52ns
sending of values from observable via distinct_until_changed to subscriber 2.68ns 3.17377 0.84 1.34ns

first

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
first construction from observable via dot + subscribe 142.80ns 161.927 0.88 573.73ns
sending of values from observable via first to subscriber 0.67ns 0.443697 1.51 0.67ns

foundamental sources

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
empty 84.64ns 96.4201 0.88 615.25ns
error 137.91ns 145.962 0.94 747.80ns
never 47.19ns 49.1035 0.96 249.66ns

from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
from vector with int 101.57ns 91.2568 1.11 647.20ns

immediate scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 0.67ns 0.473791 1.42 114.76ns
re-schedule 10 times 6.39ns 11.7215 0.54 145.90ns

just

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
just send int 88.03ns 76.4729 1.15 625.92ns
just send variadic 115.57ns 113.962 1.01 733.59ns

last

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
last construction from observable via dot + subscribe 185.10ns 182.873 1.01 352.63ns
sending of values from observable via last to subscriber 2.53ns 2.58301 0.98 1.67ns

map

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
map construction from observable via dot + subscribe 92.81ns 99.0867 0.94 238.56ns
sending of values from observable via map to subscriber 1.01ns 0.853487 1.18 2.34ns

merge

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
merge 1861.66ns 1640.13 1.14 3272.62ns
merge_with 2182.52ns 2027.87 1.08 3512.13ns

observe_on

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
observe_on construction from observable via dot + subscribe 554.44ns 550.072 1.01 2606.27ns
sending of values from observable via observe_on to subscriber 89.15ns 98.7961 0.90 194.89ns

publish_subject callbacks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
on_next 24.07ns 25.0439 0.96 11.14ns
on_error 0.67ns 0.51916 1.30 19.14ns
on_completed 0.67ns 0.516979 1.30 0.67ns

publish_subject routines

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
construct 197.84ns 226.749 0.87 184.98ns
get_observable 29.11ns 29.6374 0.98 51.35ns
get_subscriber 60.57ns 63.321 0.96 13.47ns

repeat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
repeat construction from observable via dot + subscribe 3945.79ns 4106.73 0.96 3067.02ns

scan

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
scan construction from observable via dot + subscribe 129.60ns 139.19 0.93 296.25ns
sending of values from observable via scan to subscriber 2.01ns 2.22851 0.90 2.34ns

single-threaded locks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no-lock increment 2.02ns 2.65033 0.76 .
mutex lock increment 18.08ns 21.9348 0.82 .
spin-lock increment 9.24ns 9.32004 0.99 .

skip

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
skip construction from observable via dot + subscribe 118.53ns 129.047 0.92 485.37ns
sending of values from observable via skip to subscriber 2.01ns 2.22761 0.90 2.01ns

switch_on_next

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
switch_on_next construction from observable via dot + subscribe 2231.87ns 2781.68 0.80 2760.12ns
sending of values from observable via switch_on_next to subscriber 566.17ns 485.095 1.17 642.54ns

take

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take construction from observable via dot + subscribe 184.37ns 196.426 0.94 487.09ns
sending of values from observable via take to subscriber 2.35ns 2.98348 0.79 2.68ns

take_last

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take_last construction from observable via dot + subscribe 229.66ns 251.086 0.91 523.16ns
sending of values from observable via take_last to subscriber 2.91ns 3.2309 0.90 3.48ns

take_until

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take_until construction from observable via dot + subscribe 1046.11ns 1128.04 0.93 1160.90ns
sending of values from observable via take_until to subscriber 9.04ns 10.0262 0.90 1.79ns

trampoline scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 11.73ns 13.677 0.86 158.65ns
re-schedule 10 times 30.57ns 26.0061 1.18 192.38ns
recursively schedule 10 times 1388.24ns 1605.01 0.86 5514.87ns

window

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
window 2025.28ns 1942.01 1.04 3100.12ns
sending of values from observable via window to subscriber 546.19ns 566.532 0.96 366.85ns

with_latest_from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
with_latest_from construction from observable via dot + subscribe 1042.37ns 1151.64 0.91 1154.64ns
sending of values from observable via with_latest_from to subscriber 26.45ns 30.0511 0.88 3.01ns

ci-ubuntu-gcc

Observable construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable construction 0.40ns 0.363711 1.11 0.40ns
Dynamic observable construction 28.81ns 30.2307 0.95 22.72ns
Specific observable construction + as_dynamic 28.81ns 33.2659 0.87 22.14ns

Observable lift

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable lift specific observer 118.64ns 121.073 0.98 342.22ns
Specific observable lift dynamic observer 147.56ns 164.567 0.90 350.61ns
Dynamic observable lift specific observer 202.54ns 215.382 0.94 397.61ns
Dynamic observable lift dynamic observer 217.96ns 221.038 0.99 380.64ns

Observable subscribe

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe specific observer 80.84ns 86.1006 0.94 334.57ns
Specific observable subscribe dynamic observer 96.55ns 101.666 0.95 331.93ns
Dynamic observable subscribe specific observer 148.29ns 178.482 0.83 365.56ns
Dynamic observable subscribe dynamic observer 151.30ns 159.363 0.95 351.95ns

Observable subscribe #2

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe lambda 79.06ns 81.1403 0.97 320.17ns
Dynamic observable subscribe lambda 150.66ns 169.625 0.89 399.14ns
Specific observable subscribe lambda without subscription 79.31ns 91.5542 0.87 332.03ns
Dynamic observable subscribe lambda without subscription 150.38ns 155.137 0.97 362.44ns
Specific observable subscribe specific subscriber 48.71ns 51.7139 0.94 281.05ns
Dynamic observable subscribe specific subscriber 118.01ns 120.547 0.98 315.56ns
Specific observable subscribe dynamic observer 49.11ns 50.4471 0.97 284.40ns
Dynamic observable subscribe dynamic observer 104.02ns 128.199 0.81 293.24ns

Observer construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer construction 0.40ns 0.399176 1.01 0.40ns
Dynamic observer construction 28.71ns 35.7399 0.80 18.67ns
Specific observer construction + as_dynamic 28.85ns 36.3258 0.79 18.70ns

OnNext

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer OnNext 0.43ns 0.383102 1.13 0.43ns
Dynamic observer OnNext 1.61ns 2.42721 0.66 2.01ns

Subscriber construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Make subsriber 33.52ns 38.4586 0.87 59.44ns
Make copy of subscriber 16.11ns 24.918 0.65 5.94ns
Transform subsriber to dynamic 44.76ns 45.7498 0.98 22.61ns

Subscription

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
composite_subscription create 33.44ns 37.7443 0.89 50.81ns
composite_subscription add 50.21ns 45.9564 1.09 97.94ns
composite_subscription unsubscribe 43.49ns 50.3341 0.86 20.77ns

buffer

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
buffer 257.79ns 293.496 0.88 1989.87ns
sending of values from observable via buffer to subscriber 6.42ns 10.44 0.61 26.12ns

chains creation test

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
long non-state chain creation + subscribe 323.46ns 318.576 1.02 725.61ns
long stateful chain creation + subscribe 455.34ns 582.68 0.78 1119.87ns

combine_latest

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
combine_latest construction from observable via dot + subscribe 988.85ns 1059.62 0.93 1151.43ns
sending of values from observable via combine_latest to subscriber 34.17ns 32.3871 1.05 1.47ns

concat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
concat 2037.93ns 2112.94 0.96 3901.51ns
concat_with 2394.92ns 3043.18 0.79 4525.15ns

distinct_until_changed

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
distinct_until_changed construction from observable via dot + subscribe 139.88ns 146.633 0.95 372.48ns
sending of values from observable via distinct_until_changed to subscriber 2.81ns 3.47759 0.81 1.32ns

first

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
first construction from observable via dot + subscribe 166.09ns 182.522 0.91 742.27ns
sending of values from observable via first to subscriber 1.61ns 0.745617 2.15 0.81ns

foundamental sources

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
empty 86.18ns 106.859 0.81 771.97ns
error 135.93ns 159.199 0.85 880.53ns
never 46.98ns 53.4859 0.88 282.53ns

from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
from vector with int 101.76ns 127.821 0.80 823.64ns

immediate scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 1.20ns 1.24885 0.96 127.95ns
re-schedule 10 times 19.98ns 20.0581 1.00 159.34ns

just

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
just send int 89.65ns 98.7211 0.91 811.97ns
just send variadic 115.74ns 146.76 0.79 848.06ns

last

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
last construction from observable via dot + subscribe 200.56ns 271.994 0.74 438.88ns
sending of values from observable via last to subscriber 3.02ns 2.71679 1.11 1.16ns

map

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
map construction from observable via dot + subscribe 108.06ns 135.879 0.80 353.30ns
sending of values from observable via map to subscriber 1.01ns 0.957917 1.05 1.61ns

merge

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
merge 2008.47ns 2078.34 0.97 4049.87ns
merge_with 2384.54ns 2442.16 0.98 4351.00ns

observe_on

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
observe_on construction from observable via dot + subscribe 604.13ns 662.889 0.91 2695.27ns
sending of values from observable via observe_on to subscriber 94.39ns 101.835 0.93 239.90ns

publish_subject callbacks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
on_next 29.31ns 25.3559 1.16 8.76ns
on_error 0.81ns 0.77442 1.04 16.14ns
on_completed 1.21ns 0.687971 1.76 1.21ns

publish_subject routines

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
construct 207.88ns 235.406 0.88 147.78ns
get_observable 30.57ns 35.8347 0.85 43.64ns
get_subscriber 64.12ns 60.7798 1.05 20.96ns

repeat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
repeat construction from observable via dot + subscribe 4379.14ns 5198.74 0.84 3247.80ns

scan

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
scan construction from observable via dot + subscribe 137.06ns 174.685 0.78 397.22ns
sending of values from observable via scan to subscriber 2.41ns 3.0837 0.78 1.67ns

single-threaded locks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no-lock increment 2.49ns 2.81317 0.88 .
mutex lock increment 22.51ns 21.4537 1.05 .
spin-lock increment 10.46ns 13.5872 0.77 .

skip

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
skip construction from observable via dot + subscribe 139.78ns 142.363 0.98 547.42ns
sending of values from observable via skip to subscriber 3.61ns 4.3867 0.82 2.75ns

switch_on_next

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
switch_on_next construction from observable via dot + subscribe 2473.33ns 2539.68 0.97 4594.43ns
sending of values from observable via switch_on_next to subscriber 624.81ns 748.162 0.84 1191.75ns

take

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take construction from observable via dot + subscribe 193.09ns 227.273 0.85 612.67ns
sending of values from observable via take to subscriber 4.02ns 5.01218 0.80 2.95ns

take_last

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take_last construction from observable via dot + subscribe 233.97ns 291.54 0.80 657.40ns
sending of values from observable via take_last to subscriber 3.62ns 4.52829 0.80 6.38ns

take_until

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take_until construction from observable via dot + subscribe 1139.50ns 1099.74 1.04 1699.55ns
sending of values from observable via take_until to subscriber 10.45ns 15.2121 0.69 2.05ns

trampoline scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 17.35ns 26.7279 0.65 171.84ns
re-schedule 10 times 41.51ns 50.9557 0.81 210.35ns
recursively schedule 10 times 1409.00ns 1842.64 0.76 6149.60ns

window

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
window 2235.00ns 2600.7 0.86 3390.33ns
sending of values from observable via window to subscriber 606.00ns 679.105 0.89 408.29ns

with_latest_from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
with_latest_from construction from observable via dot + subscribe 1131.54ns 1316.85 0.86 1461.59ns
sending of values from observable via with_latest_from to subscriber 29.74ns 29.8293 1.00 3.39ns

ci-windows

Observable construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable construction 1.91ns 1.81755 1.05 0.76ns
Dynamic observable construction 92.25ns 142.944 0.65 151.13ns
Specific observable construction + as_dynamic 89.84ns 95.9578 0.94 125.98ns

Observable lift

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable lift specific observer 266.57ns 208.863 1.28 1283.55ns
Specific observable lift dynamic observer 211.19ns 243.299 0.87 1350.17ns
Dynamic observable lift specific observer 374.62ns 363.671 1.03 1448.69ns
Dynamic observable lift dynamic observer 286.02ns 314.674 0.91 1536.06ns

Observable subscribe

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe specific observer 162.00ns 169.795 0.95 1222.25ns
Specific observable subscribe dynamic observer 157.75ns 185.809 0.85 1280.21ns
Dynamic observable subscribe specific observer 246.97ns 305.158 0.81 1604.12ns
Dynamic observable subscribe dynamic observer 432.21ns 241.571 1.79 1434.47ns

Observable subscribe #2

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe lambda 157.39ns 165.375 0.95 1299.43ns
Dynamic observable subscribe lambda 263.95ns 334.17 0.79 1371.12ns
Specific observable subscribe lambda without subscription 160.47ns 167.681 0.96 1222.55ns
Dynamic observable subscribe lambda without subscription 280.91ns 307.109 0.91 1882.19ns
Specific observable subscribe specific subscriber 57.28ns 57.0211 1.00 1003.92ns
Dynamic observable subscribe specific subscriber 189.66ns 190.327 1.00 1171.75ns
Specific observable subscribe dynamic observer 73.67ns 65.6992 1.12 942.00ns
Dynamic observable subscribe dynamic observer 166.47ns 149.151 1.12 1095.57ns

Observer construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer construction 1.90ns 1.84059 1.03 2.13ns
Dynamic observer construction 240.86ns 112.961 2.13 122.66ns
Specific observer construction + as_dynamic 82.35ns 105.094 0.78 130.03ns

OnNext

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer OnNext 0.73ns 0.802863 0.91 0.74ns
Dynamic observer OnNext 1.94ns 2.15512 0.90 2.23ns

Subscriber construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Make subsriber 86.18ns 101.85 0.85 414.59ns
Make copy of subscriber 16.84ns 20.1408 0.84 33.99ns
Transform subsriber to dynamic 100.25ns 117.372 0.85 167.40ns

Subscription

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
composite_subscription create 98.20ns 111.02 0.88 379.94ns
composite_subscription add 85.74ns 86.1016 1.00 193.11ns
composite_subscription unsubscribe 65.35ns 77.7857 0.84 127.30ns

buffer

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
buffer 445.08ns 455.276 0.98 4713.83ns
sending of values from observable via buffer to subscriber 7.95ns 9.22805 0.86 126.68ns

chains creation test

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
long non-state chain creation + subscribe 341.28ns 358.132 0.95 2372.33ns
long stateful chain creation + subscribe 787.37ns 822.889 0.96 3522.71ns

combine_latest

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
combine_latest construction from observable via dot + subscribe 1828.29ns 1993.47 0.92 3149.14ns
sending of values from observable via combine_latest to subscriber 50.20ns 55.5246 0.90 4.81ns

concat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
concat 3146.22ns 4105.89 0.77 10661.30ns
concat_with 4022.29ns 4258.33 0.94 11965.00ns

distinct_until_changed

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
distinct_until_changed construction from observable via dot + subscribe 223.64ns 241.219 0.93 1074.73ns
sending of values from observable via distinct_until_changed to subscriber 4.76ns 4.03594 1.18 4.54ns

first

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
first construction from observable via dot + subscribe 175.76ns 176.336 1.00 3027.89ns
sending of values from observable via first to subscriber 2.95ns 3.23829 0.91 1.20ns

foundamental sources

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
empty 93.84ns 99.2128 0.95 2760.78ns
error 160.70ns 178.225 0.90 2858.11ns
never 58.60ns 62.3493 0.94 1028.59ns

from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
from vector with int 197.98ns 202.711 0.98 2751.89ns

immediate scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 1.71ns 1.95236 0.88 528.60ns
re-schedule 10 times 137.38ns 117.324 1.17 597.22ns

just

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
just send int 207.50ns 106.267 1.95 2825.22ns
just send variadic 140.35ns 154.352 0.91 3549.44ns

last

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
last construction from observable via dot + subscribe 334.35ns 290.232 1.15 1691.87ns
sending of values from observable via last to subscriber 4.65ns 3.83825 1.21 5.76ns

map

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
map construction from observable via dot + subscribe 113.17ns 127.406 0.89 1142.61ns
sending of values from observable via map to subscriber 3.48ns 5.09179 0.68 7.69ns

merge

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
merge 3889.12ns 3126.22 1.24 12943.00ns
merge_with 4619.38ns 5483.57 0.84 12835.00ns

observe_on

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
observe_on construction from observable via dot + subscribe 861.93ns 954.094 0.90 6480.20ns
sending of values from observable via observe_on to subscriber 101.48ns 112.387 0.90 851.73ns

publish_subject callbacks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
on_next 23.54ns 23.8865 0.99 31.83ns
on_error 11.85ns 4.05827 2.92 20.60ns
on_completed 2.81ns 3.25055 0.86 0.66ns

publish_subject routines

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
construct 547.63ns 425.017 1.29 707.23ns
get_observable 29.44ns 36.7321 0.80 174.56ns
get_subscriber 59.10ns 60.2884 0.98 110.51ns

repeat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
repeat construction from observable via dot + subscribe 7739.00ns 7304.4 1.06 11340.30ns

scan

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
scan construction from observable via dot + subscribe 209.87ns 257.932 0.81 1331.00ns
sending of values from observable via scan to subscriber 6.05ns 7.14263 0.85 10.70ns

single-threaded locks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no-lock increment 2.80ns 2.25254 1.24 .
mutex lock increment 28.59ns 30.9019 0.93 .
spin-lock increment 23.57ns 11.0509 2.13 .

skip

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
skip construction from observable via dot + subscribe 223.22ns 231.821 0.96 1700.38ns
sending of values from observable via skip to subscriber 4.56ns 5.416 0.84 3.98ns

switch_on_next

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
switch_on_next construction from observable via dot + subscribe 3909.75ns 4282.14 0.91 13702.50ns
sending of values from observable via switch_on_next to subscriber 1215.29ns 1040.1 1.17 4138.00ns

take

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take construction from observable via dot + subscribe 313.23ns 300.467 1.04 2677.27ns
sending of values from observable via take to subscriber 7.81ns 7.54457 1.04 6.55ns

take_last

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take_last construction from observable via dot + subscribe 405.84ns 418.463 0.97 2984.62ns
sending of values from observable via take_last to subscriber 5.21ns 5.12118 1.02 30.88ns

take_until

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take_until construction from observable via dot + subscribe 2075.88ns 2088.25 0.99 6202.60ns
sending of values from observable via take_until to subscriber 11.19ns 13.3051 0.84 6.20ns

trampoline scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 18.48ns 24.2958 0.76 860.00ns
re-schedule 10 times 179.70ns 145.534 1.23 785.15ns
recursively schedule 10 times 2812.00ns 3462.4 0.81 22258.50ns

window

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
window 3619.38ns 3546.0 1.02 11688.30ns
sending of values from observable via window to subscriber 954.64ns 1002.48 0.95 1939.20ns

with_latest_from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
with_latest_from construction from observable via dot + subscribe 2421.00ns 2459.83 0.98 4170.00ns
sending of values from observable via with_latest_from to subscriber 44.15ns 45.0311 0.98 7.57ns

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ clang-tidy found issue(s) with the introduced code (1/1)

#pragma once

#include <rpp/schedulers.hpp>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ performance-unnecessary-value-param ⚠️
parameter state is passed by value and only copied once; consider moving it to avoid unnecessary copies

Suggested change
#include <utility>

{
public:
worker_strategy(std::shared_ptr<state> state)
: m_state{state} { }

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ performance-unnecessary-value-param ⚠️
parameter state is passed by value and only copied once; consider moving it to avoid unnecessary copies

Suggested change
: m_state{state} { }
: m_state{std::move(state} { }

{
public:
worker_strategy(std::shared_ptr<state> state)
: m_state{state} { }

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ performance-unnecessary-value-param ⚠️
parameter state is passed by value and only copied once; consider moving it to avoid unnecessary copies

Suggested change
: m_state{state} { }
: m_state{state)} { }

@sonarqubecloud

Copy link
Copy Markdown

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 4 Code Smells

No Coverage information No Coverage information
0.0% 0.0% Duplication

@AlexInLog AlexInLog merged commit 189556d into main Sep 26, 2022
@AlexInLog AlexInLog deleted the update_test_scheduler branch September 26, 2022 20:53
@AlexInLog AlexInLog restored the update_test_scheduler branch October 10, 2022 17:38
@AlexInLog AlexInLog deleted the update_test_scheduler branch October 10, 2022 17:38
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.

1 participant