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

Simplify a bit #321

Merged
merged 1 commit into from
Feb 12, 2023
Merged

Simplify a bit #321

merged 1 commit into from
Feb 12, 2023

Conversation

victimsnino
Copy link
Owner

No description provided.

@github-actions
Copy link
Contributor

BENCHMARK RESULTS (AUTOGENERATED)

ci-macos

Observable construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable construction 0.35ns 0.279113 1.24 0.33ns
Dynamic observable construction 85.11ns 76.6756 1.11 129.47ns
Specific observable construction + as_dynamic 87.18ns 72.1524 1.21 127.73ns

Observable lift

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable lift specific observer 158.35ns 131.917 1.20 1239.66ns
Specific observable lift dynamic observer 194.58ns 163.498 1.19 1271.64ns
Dynamic observable lift specific observer 269.45ns 268.868 1.00 1404.06ns
Dynamic observable lift dynamic observer 249.79ns 212.062 1.18 1695.69ns

Observable subscribe

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe specific observer 135.86ns 134.496 1.01 1277.74ns
Specific observable subscribe dynamic observer 159.90ns 127.316 1.26 1341.88ns
Dynamic observable subscribe specific observer 249.54ns 222.584 1.12 1445.34ns
Dynamic observable subscribe dynamic observer 199.31ns 168.252 1.18 1368.58ns

Observable subscribe #2

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe lambda 112.38ns 115.536 0.97 1280.88ns
Dynamic observable subscribe lambda 242.69ns 213.241 1.14 1428.11ns
Specific observable subscribe lambda without subscription 122.32ns 106.175 1.15 1300.38ns
Dynamic observable subscribe lambda without subscription 250.91ns 206.038 1.22 1433.45ns
Specific observable subscribe specific subscriber 36.69ns 30.041 1.22 1003.43ns
Dynamic observable subscribe specific subscriber 165.18ns 132.306 1.25 1204.44ns
Specific observable subscribe dynamic observer 52.34ns 32.6666 1.60 970.78ns
Dynamic observable subscribe dynamic observer 82.77ns 103.005 0.80 985.62ns

Observer construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer construction 0.34ns 0.279209 1.21 0.35ns
Dynamic observer construction 87.65ns 90.4257 0.97 119.02ns
Specific observer construction + as_dynamic 78.61ns 74.8932 1.05 119.07ns

OnNext

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer OnNext 0.95ns 0.786286 1.21 0.90ns
Dynamic observer OnNext 2.52ns 2.14655 1.17 2.57ns

Subscriber construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Make subsriber 92.88ns 75.1669 1.24 371.94ns
Make copy of subscriber 13.62ns 12.2524 1.11 31.81ns
Transform subsriber to dynamic 96.59ns 82.7585 1.17 155.62ns

Subscription

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
composite_subscription create 88.20ns 70.3482 1.25 348.88ns
composite_subscription add 65.78ns 61.8728 1.06 123.73ns
composite_subscription unsubscribe 92.57ns 70.8025 1.31 92.95ns

buffer

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
buffer 1543.66ns 1421.05 1.09 3907.97ns
sending of values from observable via buffer to subscriber 7.06ns 13.0322 0.54 106.56ns

chains creation test

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
long non-state chain creation + subscribe 252.15ns 217.548 1.16 1593.93ns
long stateful chain creation + subscribe 594.32ns 533.042 1.11 3387.66ns

combine_latest

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
combine_latest construction from observable via dot + subscribe 1444.95ns 1379.63 1.05 .
sending of values from observable via combine_latest to subscriber 27.56ns 23.4083 1.18 .

concat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
concat 4577.08ns 4121.89 1.11 11175.30ns
concat_with 5290.57ns 4122.66 1.28 12783.80ns

distinct_until_changed

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
distinct_until_changed construction from observable via dot + subscribe 166.56ns 151.373 1.10 943.13ns
sending of values from observable via distinct_until_changed to subscriber 2.70ns 2.23588 1.21 1.33ns

first

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
first construction from observable via dot + subscribe 227.21ns 193.216 1.18 2580.59ns
sending of values from observable via first to subscriber 0.64ns 0.557867 1.15 1.10ns

foundamental sources

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
empty 66.55ns 117.488 0.57 2610.65ns
error 137.47ns 116.785 1.18 2739.14ns
never 38.81ns 32.1619 1.21 968.70ns

from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
from vector with int 740.86ns 757.538 0.98 2696.01ns

immediate scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 2.35ns 2.24285 1.05 458.58ns
re-schedule 10 times 28.38ns 25.727 1.10 542.62ns

just

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
just send int 565.59ns 432.542 1.31 2575.24ns
just send variadic 1964.28ns 1672.93 1.17 2726.33ns

last

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
last construction from observable via dot + subscribe 361.12ns 287.38 1.26 1441.19ns
sending of values from observable via last to subscriber 4.95ns 6.37668 0.78 1.53ns

map

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
map construction from observable via dot + subscribe 79.08ns 65.9347 1.20 1043.86ns
sending of values from observable via map to subscriber 1.38ns 1.11586 1.24 1.68ns

merge

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
merge 5022.16ns 4155.39 1.21 11254.70ns
merge_with 4879.00ns 4041.16 1.21 11814.00ns

observe_on

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
observe_on construction from observable via dot + subscribe 1546.51ns 1163.65 1.33 11902.90ns
sending of values from observable via observe_on to subscriber 255.85ns 215.378 1.19 927.49ns

on_error_resume_next

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
on_error_resume_next construction from observable via dot + subscribe 688.30ns 590.597 1.17 1812.07ns

publish_subject callbacks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
on_next 25.13ns 21.134 1.19 33.76ns
on_error 0.67ns 0.560996 1.20 20.49ns
on_completed 0.69ns 0.560947 1.23 2.74ns

publish_subject routines

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
construct 403.43ns 642.55 0.63 661.08ns
get_observable 31.76ns 26.6124 1.19 185.77ns
get_subscriber 62.64ns 53.8332 1.16 94.02ns

repeat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
repeat construction from observable via dot + subscribe 6765.46ns 5468.89 1.24 11864.90ns

scan

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
scan construction from observable via dot + subscribe 168.67ns 145.474 1.16 1183.48ns
sending of values from observable via scan to subscriber 2.25ns 3.02426 0.74 2.38ns

single-threaded locks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no-lock increment 2.17ns 3.1477 0.69 .
mutex lock increment 27.92ns 22.8717 1.22 .
spin-lock increment 9.99ns 14.3789 0.69 .

skip

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
skip construction from observable via dot + subscribe 173.07ns 139.334 1.24 1617.79ns
sending of values from observable via skip to subscriber 2.76ns 3.1375 0.88 2.26ns

switch_on_next

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
switch_on_next construction from observable via dot + subscribe 5910.55ns 4892.26 1.21 10432.20ns
sending of values from observable via switch_on_next to subscriber 1088.00ns 987.863 1.10 3138.95ns

take

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take construction from observable via dot + subscribe 225.31ns 334.725 0.67 2230.02ns
sending of values from observable via take to subscriber 3.38ns 3.58657 0.94 6.73ns

take_last

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take_last construction from observable via dot + subscribe 361.72ns 530.931 0.68 2637.69ns
sending of values from observable via take_last to subscriber 3.36ns 2.8051 1.20 6.00ns

take_until

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take_until construction from observable via dot + subscribe 2553.10ns 2355.71 1.08 5615.67ns
sending of values from observable via take_until to subscriber 9.30ns 13.748 0.68 2.72ns

timeout

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
timeout construction from observable via dot + subscribe with run_loop 8192.30ns 6805.82 1.20 4957.27ns
sending of values from observable via timeout to subscriber with unreachable timeout interval with run_loop 83.57ns 72.7318 1.15 1067.70ns

trampoline scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 49.10ns 29.922 1.64 696.91ns
re-schedule 10 times 100.70ns 94.3211 1.07 747.04ns
recursively schedule 10 times 2295.40ns 1990.94 1.15 19580.60ns

window

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
window 4755.49ns 4002.8 1.19 9871.40ns
sending of values from observable via window to subscriber 926.18ns 958.336 0.97 1664.40ns

with_latest_from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
with_latest_from construction from observable via dot + subscribe 1939.22ns 1685.27 1.15 .
sending of values from observable via with_latest_from to subscriber 25.86ns 23.1339 1.12 .

ci-ubuntu-clang

Observable construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable construction 0.34ns 0.335131 1.00 0.34ns
Dynamic observable construction 18.80ns 18.5818 1.01 30.28ns
Specific observable construction + as_dynamic 18.97ns 18.8043 1.01 30.36ns

Observable lift

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable lift specific observer 50.34ns 50.3603 1.00 327.35ns
Specific observable lift dynamic observer 51.00ns 50.8102 1.00 349.86ns
Dynamic observable lift specific observer 84.28ns 85.2595 0.99 379.67ns
Dynamic observable lift dynamic observer 74.39ns 75.6188 0.98 365.78ns

Observable subscribe

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe specific observer 36.68ns 36.6288 1.00 323.23ns
Specific observable subscribe dynamic observer 37.21ns 37.3093 1.00 337.26ns
Dynamic observable subscribe specific observer 70.39ns 70.2825 1.00 369.99ns
Dynamic observable subscribe dynamic observer 59.85ns 60.4367 0.99 353.19ns

Observable subscribe #2

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe lambda 36.97ns 36.9314 1.00 321.26ns
Dynamic observable subscribe lambda 64.89ns 64.8558 1.00 365.60ns
Specific observable subscribe lambda without subscription 36.68ns 36.542 1.00 323.16ns
Dynamic observable subscribe lambda without subscription 64.74ns 64.8341 1.00 366.89ns
Specific observable subscribe specific subscriber 13.73ns 13.7173 1.00 259.21ns
Dynamic observable subscribe specific subscriber 42.81ns 42.9321 1.00 301.46ns
Specific observable subscribe dynamic observer 13.74ns 13.7365 1.00 271.48ns
Dynamic observable subscribe dynamic observer 33.55ns 33.7434 0.99 287.33ns

Observer construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer construction 0.33ns 0.335157 1.00 0.33ns
Dynamic observer construction 19.27ns 18.4706 1.04 23.66ns
Specific observer construction + as_dynamic 18.31ns 17.9551 1.02 23.63ns

OnNext

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer OnNext 0.67ns 0.670203 1.00 0.67ns
Dynamic observer OnNext 2.01ns 2.00734 1.00 2.34ns

Subscriber construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Make subsriber 20.07ns 19.8639 1.01 67.71ns
Make copy of subscriber 6.96ns 6.95542 1.00 8.13ns
Transform subsriber to dynamic 20.46ns 20.697 0.99 28.00ns

Subscription

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
composite_subscription create 20.13ns 20.224 1.00 60.45ns
composite_subscription add 18.13ns 17.7861 1.02 77.85ns
composite_subscription unsubscribe 30.28ns 30.1336 1.00 29.92ns

buffer

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
buffer 756.49ns 766.184 0.99 1829.49ns
sending of values from observable via buffer to subscriber 5.02ns 5.02488 1.00 26.08ns

chains creation test

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
long non-state chain creation + subscribe 102.46ns 102.498 1.00 623.03ns
long stateful chain creation + subscribe 145.26ns 145.079 1.00 1367.72ns

combine_latest

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
combine_latest construction from observable via dot + subscribe 451.95ns 455.492 0.99 .
sending of values from observable via combine_latest to subscriber 8.03ns 8.01816 1.00 .

concat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
concat 1789.90ns 1786.49 1.00 3459.48ns
concat_with 1559.61ns 1555.52 1.00 3857.54ns

distinct_until_changed

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
distinct_until_changed construction from observable via dot + subscribe 52.36ns 52.0928 1.01 301.33ns
sending of values from observable via distinct_until_changed to subscriber 1.67ns 1.67714 1.00 1.34ns

first

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
first construction from observable via dot + subscribe 82.07ns 82.3694 1.00 694.01ns
sending of values from observable via first to subscriber 0.34ns 0.336162 1.00 1.01ns

foundamental sources

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
empty 36.08ns 36.4263 0.99 678.98ns
error 81.51ns 81.2524 1.00 776.73ns
never 14.51ns 14.4657 1.00 274.70ns

from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
from vector with int 232.21ns 239.46 0.97 706.39ns

immediate scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 0.89ns 0.903482 0.98 124.06ns
re-schedule 10 times 9.05ns 9.03363 1.00 156.10ns

just

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
just send int 201.93ns 208.529 0.97 675.69ns
just send variadic 1178.10ns 1203.32 0.98 757.03ns

last

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
last construction from observable via dot + subscribe 114.73ns 114.335 1.00 420.99ns
sending of values from observable via last to subscriber 2.35ns 2.34756 1.00 1.34ns

map

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
map construction from observable via dot + subscribe 30.40ns 30.3811 1.00 285.15ns
sending of values from observable via map to subscriber 0.84ns 0.847597 0.99 2.01ns

merge

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
merge 1734.57ns 1731.08 1.00 3531.59ns
merge_with 1551.06ns 1546.57 1.00 3829.28ns

observe_on

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
observe_on construction from observable via dot + subscribe 561.14ns 551.564 1.02 2827.84ns
sending of values from observable via observe_on to subscriber 130.36ns 129.22 1.01 242.48ns

on_error_resume_next

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
on_error_resume_next construction from observable via dot + subscribe 232.63ns 233.195 1.00 793.39ns

publish_subject callbacks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
on_next 19.07ns 19.1515 1.00 15.69ns
on_error 1.01ns 1.01414 0.99 16.81ns
on_completed 1.01ns 1.00941 1.00 0.67ns

publish_subject routines

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
construct 122.42ns 118.978 1.03 181.54ns
get_observable 7.91ns 7.89209 1.00 50.56ns
get_subscriber 19.65ns 19.6906 1.00 19.94ns

repeat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
repeat construction from observable via dot + subscribe 2209.24ns 2182.6 1.01 3243.03ns

scan

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
scan construction from observable via dot + subscribe 46.44ns 46.0236 1.01 367.31ns
sending of values from observable via scan to subscriber 1.67ns 1.67258 1.00 2.34ns

single-threaded locks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no-lock increment 2.01ns 1.99016 1.01 .
mutex lock increment 8.02ns 8.0415 1.00 .
spin-lock increment 9.06ns 9.12011 0.99 .

skip

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
skip construction from observable via dot + subscribe 47.71ns 45.6164 1.05 524.78ns
sending of values from observable via skip to subscriber 1.68ns 1.67532 1.00 1.80ns

switch_on_next

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
switch_on_next construction from observable via dot + subscribe 1839.95ns 1841.4 1.00 3364.78ns
sending of values from observable via switch_on_next to subscriber 4557.08ns 4579.6 1.00 794.98ns

take

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take construction from observable via dot + subscribe 82.30ns 81.8632 1.01 573.33ns
sending of values from observable via take to subscriber 2.35ns 2.34605 1.00 3.03ns

take_last

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take_last construction from observable via dot + subscribe 114.27ns 115.677 0.99 618.15ns
sending of values from observable via take_last to subscriber 2.36ns 2.36083 1.00 3.75ns

take_until

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take_until construction from observable via dot + subscribe 882.21ns 874.839 1.01 1405.65ns
sending of values from observable via take_until to subscriber 8.70ns 8.71932 1.00 2.68ns

timeout

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
timeout construction from observable via dot + subscribe with run_loop 793.35ns 792.076 1.00 17426.40ns
sending of values from observable via timeout to subscriber with unreachable timeout interval with run_loop 41.43ns 41.4548 1.00 13657.30ns

trampoline scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 7.58ns 7.88637 0.96 183.44ns
re-schedule 10 times 27.83ns 27.8072 1.00 219.21ns
recursively schedule 10 times 1418.30ns 1420.79 1.00 8230.48ns

window

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
window 1591.70ns 1594.97 1.00 3233.43ns
sending of values from observable via window to subscriber 264.34ns 264.065 1.00 411.95ns

with_latest_from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
with_latest_from construction from observable via dot + subscribe 529.09ns 540.517 0.98 .
sending of values from observable via with_latest_from to subscriber 8.83ns 8.81874 1.00 .

ci-ubuntu-gcc

Observable construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable construction 0.39ns 0.375776 1.05 0.37ns
Dynamic observable construction 33.43ns 33.4096 1.00 58.51ns
Specific observable construction + as_dynamic 37.08ns 36.1118 1.03 57.52ns

Observable lift

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable lift specific observer 119.45ns 122.669 0.97 818.79ns
Specific observable lift dynamic observer 141.50ns 149.203 0.95 915.65ns
Dynamic observable lift specific observer 196.79ns 211.938 0.93 927.18ns
Dynamic observable lift dynamic observer 232.60ns 244.349 0.95 940.43ns

Observable subscribe

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe specific observer 70.74ns 70.3299 1.01 817.76ns
Specific observable subscribe dynamic observer 119.07ns 92.3954 1.29 802.03ns
Dynamic observable subscribe specific observer 142.18ns 141.062 1.01 917.95ns
Dynamic observable subscribe dynamic observer 141.52ns 153.361 0.92 825.98ns

Observable subscribe #2

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe lambda 72.14ns 70.818 1.02 831.46ns
Dynamic observable subscribe lambda 148.26ns 157.563 0.94 824.09ns
Specific observable subscribe lambda without subscription 69.94ns 71.7615 0.97 829.19ns
Dynamic observable subscribe lambda without subscription 140.27ns 150.47 0.93 946.23ns
Specific observable subscribe specific subscriber 32.63ns 35.2654 0.93 713.44ns
Dynamic observable subscribe specific subscriber 133.93ns 112.755 1.19 767.64ns
Specific observable subscribe dynamic observer 34.98ns 35.9291 0.97 701.63ns
Dynamic observable subscribe dynamic observer 100.83ns 100.067 1.01 756.93ns

Observer construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer construction 0.38ns 0.404165 0.95 0.34ns
Dynamic observer construction 38.77ns 33.9506 1.14 50.40ns
Specific observer construction + as_dynamic 37.78ns 35.2693 1.07 52.66ns

OnNext

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer OnNext 0.36ns 0.380798 0.95 0.40ns
Dynamic observer OnNext 2.08ns 2.32684 0.90 2.35ns

Subscriber construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Make subsriber 42.17ns 42.9384 0.98 160.31ns
Make copy of subscriber 19.84ns 19.758 1.00 34.06ns
Transform subsriber to dynamic 46.93ns 49.7084 0.94 85.12ns

Subscription

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
composite_subscription create 42.02ns 39.1849 1.07 156.76ns
composite_subscription add 54.18ns 57.6139 0.94 142.04ns
composite_subscription unsubscribe 46.86ns 50.3817 0.93 41.10ns

buffer

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
buffer 1129.34ns 1038.62 1.09 3887.14ns
sending of values from observable via buffer to subscriber 6.68ns 7.08022 0.94 37.32ns

chains creation test

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
long non-state chain creation + subscribe 331.44ns 355.264 0.93 1545.93ns
long stateful chain creation + subscribe 531.22ns 523.353 1.02 8969.79ns

combine_latest

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
combine_latest construction from observable via dot + subscribe 1022.92ns 1075.89 0.95 .
sending of values from observable via combine_latest to subscriber 9.51ns 11.1534 0.85 .

concat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
concat 3398.34ns 3504.02 0.97 8725.32ns
concat_with 3270.44ns 3346.82 0.98 9609.83ns

distinct_until_changed

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
distinct_until_changed construction from observable via dot + subscribe 140.73ns 149.661 0.94 886.50ns
sending of values from observable via distinct_until_changed to subscriber 3.18ns 2.87762 1.11 1.46ns

first

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
first construction from observable via dot + subscribe 198.94ns 206.047 0.97 1941.94ns
sending of values from observable via first to subscriber 0.76ns 0.777266 0.98 0.66ns

foundamental sources

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
empty 81.45ns 83.5839 0.97 1981.46ns
error 127.05ns 133.703 0.95 1856.56ns
never 45.20ns 40.0928 1.13 729.32ns

from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
from vector with int 364.41ns 405.107 0.90 2073.21ns

immediate scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 1.13ns 1.06448 1.06 326.92ns
re-schedule 10 times 20.79ns 29.0529 0.72 327.00ns

just

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
just send int 351.83ns 366.257 0.96 2000.83ns
just send variadic 1648.32ns 1647.61 1.00 2375.42ns

last

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
last construction from observable via dot + subscribe 246.88ns 256.326 0.96 1290.22ns
sending of values from observable via last to subscriber 4.01ns 3.52399 1.14 1.78ns

map

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
map construction from observable via dot + subscribe 88.25ns 93.9435 0.94 815.16ns
sending of values from observable via map to subscriber 0.85ns 0.904417 0.95 1.70ns

merge

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
merge 3206.99ns 3681.91 0.87 10742.10ns
merge_with 3035.70ns 3564.02 0.85 10660.40ns

observe_on

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
observe_on construction from observable via dot + subscribe 962.50ns 988.165 0.97 5040.76ns
sending of values from observable via observe_on to subscriber 195.73ns 172.204 1.14 592.75ns

on_error_resume_next

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
on_error_resume_next construction from observable via dot + subscribe 503.98ns 543.312 0.93 1782.34ns

publish_subject callbacks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
on_next 25.90ns 27.3717 0.95 17.80ns
on_error 0.75ns 0.732448 1.02 17.10ns
on_completed 0.86ns 0.765834 1.13 0.69ns

publish_subject routines

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
construct 209.20ns 275.04 0.76 394.61ns
get_observable 28.88ns 35.3004 0.82 111.71ns
get_subscriber 66.92ns 63.2372 1.06 107.43ns

repeat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
repeat construction from observable via dot + subscribe 4563.85ns 5858.45 0.78 8655.82ns

scan

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
scan construction from observable via dot + subscribe 142.57ns 158.377 0.90 1025.07ns
sending of values from observable via scan to subscriber 2.98ns 2.81699 1.06 1.72ns

single-threaded locks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no-lock increment 2.55ns 2.58013 0.99 .
mutex lock increment 8.50ns 8.46292 1.00 .
spin-lock increment 13.31ns 14.2013 0.94 .

skip

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
skip construction from observable via dot + subscribe 130.65ns 155.329 0.84 1170.76ns
sending of values from observable via skip to subscriber 2.91ns 3.14706 0.92 2.21ns

switch_on_next

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
switch_on_next construction from observable via dot + subscribe 3478.74ns 3746.51 0.93 12735.80ns
sending of values from observable via switch_on_next to subscriber 890.76ns 940.639 0.95 3280.55ns

take

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take construction from observable via dot + subscribe 200.54ns 291.639 0.69 1537.89ns
sending of values from observable via take to subscriber 4.16ns 4.34892 0.96 3.39ns

take_last

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take_last construction from observable via dot + subscribe 251.21ns 245.439 1.02 1493.47ns
sending of values from observable via take_last to subscriber 4.10ns 3.87188 1.06 7.03ns

take_until

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take_until construction from observable via dot + subscribe 1842.87ns 1942.66 0.95 4170.87ns
sending of values from observable via take_until to subscriber 12.52ns 13.1718 0.95 2.22ns

timeout

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
timeout construction from observable via dot + subscribe with run_loop 1310.84ns 1369.31 0.96 12972.30ns
sending of values from observable via timeout to subscriber with unreachable timeout interval with run_loop 60.07ns 65.0374 0.92 2674.62ns

trampoline scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 26.70ns 23.5254 1.14 398.03ns
re-schedule 10 times 50.27ns 49.3086 1.02 701.73ns
recursively schedule 10 times 1866.73ns 1670.26 1.12 23691.80ns

window

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
window 2920.70ns 3370.38 0.87 7093.24ns
sending of values from observable via window to subscriber 647.80ns 680.538 0.95 972.60ns

with_latest_from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
with_latest_from construction from observable via dot + subscribe 1231.04ns 1323.53 0.93 .
sending of values from observable via with_latest_from to subscriber 11.26ns 11.5037 0.98 .

ci-windows

Observable construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable construction 1.51ns 2.00968 0.75 0.67ns
Dynamic observable construction 79.22ns 72.3931 1.09 123.52ns
Specific observable construction + as_dynamic 79.63ns 71.5043 1.11 123.58ns

Observable lift

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable lift specific observer 147.02ns 135.939 1.08 1206.86ns
Specific observable lift dynamic observer 178.89ns 169.877 1.05 1258.24ns
Dynamic observable lift specific observer 285.42ns 265.585 1.07 1399.42ns
Dynamic observable lift dynamic observer 238.42ns 232.972 1.02 1298.95ns

Observable subscribe

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe specific observer 111.70ns 100.348 1.11 1164.82ns
Specific observable subscribe dynamic observer 131.97ns 118.052 1.12 1197.14ns
Dynamic observable subscribe specific observer 228.28ns 207.75 1.10 1336.26ns
Dynamic observable subscribe dynamic observer 179.99ns 171.91 1.05 1226.43ns

Observable subscribe #2

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe lambda 113.16ns 98.25 1.15 1166.23ns
Dynamic observable subscribe lambda 227.58ns 205.298 1.11 1339.47ns
Specific observable subscribe lambda without subscription 112.50ns 98.3452 1.14 1168.77ns
Dynamic observable subscribe lambda without subscription 230.77ns 207.692 1.11 1343.84ns
Specific observable subscribe specific subscriber 30.79ns 26.4979 1.16 847.00ns
Dynamic observable subscribe specific subscriber 146.66ns 131.644 1.11 1030.28ns
Specific observable subscribe dynamic observer 30.80ns 26.485 1.16 881.45ns
Dynamic observable subscribe dynamic observer 102.19ns 78.7238 1.30 919.11ns

Observer construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer construction 1.50ns 2.1076 0.71 1.50ns
Dynamic observer construction 81.25ns 72.1111 1.13 114.05ns
Specific observer construction + as_dynamic 80.98ns 71.8246 1.13 114.41ns

OnNext

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer OnNext 0.67ns 0.44032 1.52 0.67ns
Dynamic observer OnNext 1.67ns 2.00804 0.83 1.71ns

Subscriber construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Make subsriber 84.35ns 72.6401 1.16 355.86ns
Make copy of subscriber 16.70ns 16.0423 1.04 31.44ns
Transform subsriber to dynamic 99.51ns 86.6748 1.15 151.32ns

Subscription

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
composite_subscription create 84.35ns 73.6294 1.15 337.49ns
composite_subscription add 80.03ns 67.2452 1.19 161.66ns
composite_subscription unsubscribe 62.50ns 61.9353 1.01 125.61ns

buffer

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
buffer 1064.50ns 1035.12 1.03 4469.17ns
sending of values from observable via buffer to subscriber 7.05ns 7.41839 0.95 90.79ns

chains creation test

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
long non-state chain creation + subscribe 274.46ns 296.225 0.93 1757.71ns
long stateful chain creation + subscribe 661.16ns 654.361 1.01 3193.38ns

combine_latest

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
combine_latest construction from observable via dot + subscribe 1789.53ns 1529.75 1.17 .
sending of values from observable via combine_latest to subscriber 35.46ns 35.8041 0.99 .

concat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
concat 4164.71ns 4033.83 1.03 10639.30ns
concat_with 4313.17ns 4204.17 1.03 11671.70ns

distinct_until_changed

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
distinct_until_changed construction from observable via dot + subscribe 184.08ns 176.029 1.05 1027.76ns
sending of values from observable via distinct_until_changed to subscriber 4.34ns 3.23416 1.34 4.20ns

first

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
first construction from observable via dot + subscribe 220.88ns 217.118 1.02 2650.30ns
sending of values from observable via first to subscriber 2.34ns 2.02735 1.16 1.75ns

foundamental sources

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
empty 63.77ns 63.4333 1.01 2397.36ns
error 111.88ns 120.889 0.93 2476.50ns
never 30.84ns 27.9085 1.10 883.42ns

from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
from vector with int 513.30ns 499.34 1.03 2476.27ns

immediate scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 2.08ns 1.60809 1.29 421.37ns
re-schedule 10 times 97.80ns 130.393 0.75 451.51ns

just

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
just send int 378.97ns 374.258 1.01 2414.09ns
just send variadic 1303.55ns 1293.65 1.01 2506.00ns

last

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
last construction from observable via dot + subscribe 311.27ns 295.026 1.06 1439.24ns
sending of values from observable via last to subscriber 4.44ns 4.36926 1.02 3.33ns

map

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
map construction from observable via dot + subscribe 88.23ns 92.5802 0.95 996.19ns
sending of values from observable via map to subscriber 4.01ns 3.59567 1.12 7.40ns

merge

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
merge 3955.29ns 7112.14 0.56 10932.00ns
merge_with 4145.00ns 4111.17 1.01 11639.70ns

observe_on

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
observe_on construction from observable via dot + subscribe 1197.43ns 1197.29 1.00 5661.40ns
sending of values from observable via observe_on to subscriber 199.88ns 194.161 1.03 849.34ns

on_error_resume_next

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
on_error_resume_next construction from observable via dot + subscribe 647.36ns 616.949 1.05 1824.31ns

publish_subject callbacks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
on_next 19.88ns 22.9955 0.86 32.61ns
on_error 3.38ns 2.44438 1.38 18.42ns
on_completed 3.04ns 2.86775 1.06 0.68ns

publish_subject routines

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
construct 374.40ns 335.339 1.12 593.27ns
get_observable 28.47ns 31.7087 0.90 162.49ns
get_subscriber 50.18ns 61.935 0.81 93.76ns

repeat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
repeat construction from observable via dot + subscribe 6033.00ns 5909.4 1.02 11377.30ns

scan

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
scan construction from observable via dot + subscribe 180.52ns 168.154 1.07 1247.29ns
sending of values from observable via scan to subscriber 6.37ns 5.74816 1.11 8.87ns

single-threaded locks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no-lock increment 1.87ns 2.81144 0.67 .
mutex lock increment 25.76ns 24.0078 1.07 .
spin-lock increment 9.70ns 10.7082 0.91 .

skip

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
skip construction from observable via dot + subscribe 176.28ns 166.741 1.06 1528.47ns
sending of values from observable via skip to subscriber 4.17ns 3.22185 1.29 3.50ns

switch_on_next

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
switch_on_next construction from observable via dot + subscribe 4770.00ns 4628.5 1.03 12073.00ns
sending of values from observable via switch_on_next to subscriber 1106.52ns 1092.9 1.01 3084.11ns

take

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take construction from observable via dot + subscribe 225.51ns 224.398 1.00 2216.40ns
sending of values from observable via take to subscriber 6.70ns 5.46745 1.23 6.49ns

take_last

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take_last construction from observable via dot + subscribe 321.06ns 307.68 1.04 2462.82ns
sending of values from observable via take_last to subscriber 4.46ns 4.45248 1.00 20.36ns

take_until

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take_until construction from observable via dot + subscribe 2341.82ns 2274.27 1.03 5225.20ns
sending of values from observable via take_until to subscriber 11.46ns 12.5814 0.91 5.81ns

timeout

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
timeout construction from observable via dot + subscribe with run_loop 1780.93ns 1610.23 1.11 5479.25ns
sending of values from observable via timeout to subscriber with unreachable timeout interval with run_loop 54.14ns 58.4382 0.93 1372.38ns

trampoline scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 21.19ns 18.6165 1.14 630.46ns
re-schedule 10 times 121.57ns 144.52 0.84 646.25ns
recursively schedule 10 times 2657.10ns 2419.27 1.10 19310.00ns

window

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
window 3640.71ns 3662.0 0.99 11155.00ns
sending of values from observable via window to subscriber 817.72ns 821.581 1.00 1636.31ns

with_latest_from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
with_latest_from construction from observable via dot + subscribe 2028.08ns 1872.38 1.08 .
sending of values from observable via with_latest_from to subscriber 27.80ns 31.3294 0.89 .

@codecov
Copy link

codecov bot commented Feb 12, 2023

Codecov Report

Merging #321 (bbd47e9) into main (b71638e) will decrease coverage by 0.02%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main     #321      +/-   ##
==========================================
- Coverage   97.88%   97.87%   -0.02%     
==========================================
  Files         114      114              
  Lines        1794     1785       -9     
==========================================
- Hits         1756     1747       -9     
  Misses         38       38              
Impacted Files Coverage Δ
src/rpp/rpp/operators/fwd/subscribe.hpp 100.00% <ø> (ø)
src/rpp/rpp/observers/dynamic_observer.hpp 100.00% <100.00%> (ø)
src/rpp/rpp/sources/from.hpp 100.00% <100.00%> (ø)
src/rpp/rpp/utils/functors.hpp 100.00% <0.00%> (ø)

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

@sonarcloud
Copy link

sonarcloud bot commented Feb 12, 2023

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

0.0% 0.0% Coverage
0.0% 0.0% Duplication

@victimsnino victimsnino merged commit 8753ba7 into main Feb 12, 2023
@victimsnino victimsnino deleted the simplify_bit branch February 12, 2023 20: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.

None yet

1 participant