Skip to content

Polish "delay"#275

Merged
AlexInLog merged 4 commits into
mainfrom
minor_delay
Sep 12, 2022
Merged

Polish "delay"#275
AlexInLog merged 4 commits into
mainfrom
minor_delay

Conversation

@AlexInLog

Copy link
Copy Markdown
Owner

No description provided.

@codecov

codecov Bot commented Sep 12, 2022

Copy link
Copy Markdown

Codecov Report

Merging #275 (a830228) into main (85fdc9e) will decrease coverage by 0.00%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main     #275      +/-   ##
==========================================
- Coverage   98.59%   98.59%   -0.01%     
==========================================
  Files         101      100       -1     
  Lines        1420     1419       -1     
==========================================
- Hits         1400     1399       -1     
  Misses         20       20              
Impacted Files Coverage Δ
src/rpp/rpp/operators/delay.hpp 100.00% <100.00%> (ø)
src/rpp/rpp/operators/fwd/observe_on.hpp 100.00% <100.00%> (ø)
src/rpp/rpp/operators/fwd/delay.hpp 100.00% <0.00%> (ø)

📣 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.33ns 0.400641 0.84 0.34ns
Dynamic observable construction 29.19ns 35.0483 0.83 24.63ns
Specific observable construction + as_dynamic 29.21ns 34.7654 0.84 24.64ns

Observable lift

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable lift specific observer 112.43ns 134.113 0.84 293.41ns
Specific observable lift dynamic observer 136.72ns 165.028 0.83 309.55ns
Dynamic observable lift specific observer 184.33ns 227.188 0.81 335.59ns
Dynamic observable lift dynamic observer 193.22ns 228.854 0.84 324.90ns

Observable subscribe

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe specific observer 77.34ns 99.2474 0.78 287.32ns
Specific observable subscribe dynamic observer 88.07ns 110.074 0.80 299.59ns
Dynamic observable subscribe specific observer 145.57ns 182.386 0.80 337.67ns
Dynamic observable subscribe dynamic observer 141.94ns 170.202 0.83 315.19ns

Observable subscribe #2

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe lambda 77.65ns 92.2534 0.84 284.49ns
Dynamic observable subscribe lambda 139.83ns 162.984 0.86 324.24ns
Specific observable subscribe lambda without subscription 76.39ns 90.4474 0.84 287.72ns
Dynamic observable subscribe lambda without subscription 142.45ns 161.732 0.88 326.97ns
Specific observable subscribe specific subscriber 43.13ns 51.8469 0.83 223.01ns
Dynamic observable subscribe specific subscriber 105.79ns 119.201 0.89 266.21ns
Specific observable subscribe dynamic observer 43.54ns 52.3883 0.83 240.61ns
Dynamic observable subscribe dynamic observer 96.84ns 109.137 0.89 257.17ns

Observer construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer construction 0.34ns 0.396705 0.85 0.34ns
Dynamic observer construction 29.21ns 35.1076 0.83 20.94ns
Specific observer construction + as_dynamic 29.16ns 33.7629 0.86 21.03ns

OnNext

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer OnNext 0.67ns 0.812063 0.82 0.67ns
Dynamic observer OnNext 1.68ns 2.01072 0.83 2.34ns

Subscriber construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Make subsriber 33.88ns 40.7343 0.83 64.73ns
Make copy of subscriber 16.76ns 20.233 0.83 4.68ns
Transform subsriber to dynamic 45.89ns 53.7422 0.85 26.61ns

Subscription

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
composite_subscription create 33.88ns 39.7134 0.85 52.92ns
composite_subscription add 49.87ns 59.1884 0.84 92.39ns
composite_subscription unsubscribe 43.43ns 51.3235 0.85 23.40ns

buffer

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
buffer 267.34ns 321.747 0.83 1841.96ns
sending of values from observable via buffer to subscriber 6.40ns 7.75073 0.83 27.38ns

chains creation test

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
long non-state chain creation + subscribe 270.03ns 302.405 0.89 495.51ns
long stateful chain creation + subscribe 400.30ns 472.137 0.85 799.13ns

combine_latest

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
combine_latest construction from observable via dot + subscribe 895.05ns 1037.22 0.86 905.73ns
sending of values from observable via combine_latest to subscriber 27.64ns 32.0357 0.86 2.34ns

concat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
concat 1873.49ns 2233.69 0.84 3299.63ns
concat_with 2195.70ns 2524.97 0.87 3727.49ns

distinct_until_changed

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
distinct_until_changed construction from observable via dot + subscribe 128.15ns 156.315 0.82 256.03ns
sending of values from observable via distinct_until_changed to subscriber 2.68ns 3.10482 0.86 1.34ns

first

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
first construction from observable via dot + subscribe 143.56ns 172.29 0.83 576.78ns
sending of values from observable via first to subscriber 0.67ns 0.747343 0.90 0.67ns

foundamental sources

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
empty 84.84ns 99.5398 0.85 619.15ns
error 137.94ns 162.697 0.85 750.71ns
never 47.12ns 54.7608 0.86 254.72ns

from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
from vector with int 100.22ns 112.194 0.89 645.77ns

immediate scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 0.67ns 1.54048 0.43 111.92ns
re-schedule 10 times 6.38ns 13.2832 0.48 146.58ns

just

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
just send int 88.38ns 98.7752 0.89 627.69ns
just send variadic 115.68ns 142.023 0.81 748.38ns

last

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
last construction from observable via dot + subscribe 185.17ns 222.304 0.83 354.64ns
sending of values from observable via last to subscriber 2.53ns 3.00725 0.84 1.68ns

map

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
map construction from observable via dot + subscribe 89.06ns 106.839 0.83 247.21ns
sending of values from observable via map to subscriber 1.01ns 1.18593 0.85 2.34ns

merge

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
merge 1859.03ns 2075.67 0.90 3273.94ns
merge_with 2166.67ns 2568.71 0.84 3576.26ns

observe_on

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
observe_on construction from observable via dot + subscribe 554.22ns 656.779 0.84 2612.94ns
sending of values from observable via observe_on to subscriber 88.75ns 107.598 0.82 194.70ns

publish_subject callbacks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
on_next 24.10ns 28.5607 0.84 11.13ns
on_error 0.67ns 0.800625 0.84 19.14ns
on_completed 0.68ns 0.810342 0.83 0.67ns

publish_subject routines

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
construct 197.36ns 214.245 0.92 180.03ns
get_observable 30.78ns 31.7274 0.97 50.40ns
get_subscriber 60.61ns 66.8871 0.91 13.50ns

repeat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
repeat construction from observable via dot + subscribe 4010.93ns 4686.14 0.86 3048.14ns

scan

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
scan construction from observable via dot + subscribe 125.14ns 147.612 0.85 304.14ns
sending of values from observable via scan to subscriber 2.01ns 2.35333 0.85 2.35ns

single-threaded locks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no-lock increment 2.02ns 2.42315 0.83 .
mutex lock increment 18.13ns 21.7209 0.83 .
spin-lock increment 9.04ns 9.93915 0.91 .

skip

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
skip construction from observable via dot + subscribe 120.26ns 146.545 0.82 474.51ns
sending of values from observable via skip to subscriber 2.01ns 2.41253 0.83 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 2218.95ns 2692.37 0.82 2870.32ns
sending of values from observable via switch_on_next to subscriber 567.22ns 570.376 0.99 686.29ns

take

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take construction from observable via dot + subscribe 184.68ns 219.107 0.84 483.59ns
sending of values from observable via take to subscriber 2.35ns 2.82023 0.83 2.61ns

take_last

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take_last construction from observable via dot + subscribe 230.42ns 275.493 0.84 525.29ns
sending of values from observable via take_last to subscriber 2.94ns 4.00142 0.74 3.51ns

take_until

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take_until construction from observable via dot + subscribe 1048.84ns 1172.66 0.89 1177.42ns
sending of values from observable via take_until to subscriber 9.03ns 11.0934 0.81 1.79ns

trampoline scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 11.74ns 16.8102 0.70 159.37ns
re-schedule 10 times 30.54ns 40.2817 0.76 192.76ns
recursively schedule 10 times 1386.21ns 1655.24 0.84 5537.58ns

window

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
window 2021.96ns 2315.87 0.87 3103.54ns
sending of values from observable via window to subscriber 548.62ns 646.164 0.85 369.68ns

with_latest_from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
with_latest_from construction from observable via dot + subscribe 1041.57ns 1202.63 0.87 1076.26ns
sending of values from observable via with_latest_from to subscriber 26.44ns 31.8233 0.83 3.01ns

ci-ubuntu-gcc

Observable construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable construction 0.34ns 0.402461 0.83 0.33ns
Dynamic observable construction 31.54ns 32.3747 0.97 24.70ns
Specific observable construction + as_dynamic 31.72ns 28.8616 1.10 24.62ns

Observable lift

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable lift specific observer 118.89ns 123.37 0.96 330.21ns
Specific observable lift dynamic observer 144.85ns 148.869 0.97 346.57ns
Dynamic observable lift specific observer 199.15ns 207.153 0.96 386.41ns
Dynamic observable lift dynamic observer 207.87ns 219.0 0.95 364.65ns

Observable subscribe

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe specific observer 82.89ns 88.0406 0.94 319.79ns
Specific observable subscribe dynamic observer 94.98ns 99.5379 0.95 330.01ns
Dynamic observable subscribe specific observer 150.21ns 157.053 0.96 362.62ns
Dynamic observable subscribe dynamic observer 145.99ns 154.532 0.94 344.24ns

Observable subscribe #2

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe lambda 83.61ns 80.4149 1.04 322.16ns
Dynamic observable subscribe lambda 151.31ns 154.429 0.98 381.99ns
Specific observable subscribe lambda without subscription 83.95ns 80.2501 1.05 319.85ns
Dynamic observable subscribe lambda without subscription 150.65ns 158.298 0.95 366.02ns
Specific observable subscribe specific subscriber 50.17ns 49.1971 1.02 270.28ns
Dynamic observable subscribe specific subscriber 118.07ns 139.048 0.85 313.31ns
Specific observable subscribe dynamic observer 50.26ns 48.6573 1.03 274.63ns
Dynamic observable subscribe dynamic observer 102.19ns 115.506 0.88 287.63ns

Observer construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer construction 0.34ns 0.401442 0.83 0.34ns
Dynamic observer construction 31.43ns 28.9523 1.09 20.96ns
Specific observer construction + as_dynamic 31.46ns 28.614 1.10 20.76ns

OnNext

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer OnNext 0.33ns 0.431851 0.78 0.34ns
Dynamic observer OnNext 1.67ns 1.6047 1.04 2.01ns

Subscriber construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Make subsriber 34.64ns 33.8145 1.02 62.57ns
Make copy of subscriber 16.71ns 16.1143 1.04 4.48ns
Transform subsriber to dynamic 45.06ns 45.1367 1.00 25.52ns

Subscription

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
composite_subscription create 34.45ns 33.9141 1.02 62.22ns
composite_subscription add 46.49ns 50.0823 0.93 100.13ns
composite_subscription unsubscribe 42.18ns 43.9535 0.96 22.05ns

buffer

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
buffer 257.29ns 254.374 1.01 1925.92ns
sending of values from observable via buffer to subscriber 7.39ns 6.36976 1.16 30.50ns

chains creation test

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
long non-state chain creation + subscribe 301.34ns 330.989 0.91 695.32ns
long stateful chain creation + subscribe 435.79ns 457.313 0.95 1047.99ns

combine_latest

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
combine_latest construction from observable via dot + subscribe 943.42ns 987.786 0.96 1131.07ns
sending of values from observable via combine_latest to subscriber 27.64ns 34.2277 0.81 2.36ns

concat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
concat 1930.05ns 2046.67 0.94 3648.09ns
concat_with 2274.52ns 2449.5 0.93 4066.86ns

distinct_until_changed

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
distinct_until_changed construction from observable via dot + subscribe 136.52ns 141.24 0.97 353.37ns
sending of values from observable via distinct_until_changed to subscriber 3.80ns 3.61607 1.05 1.34ns

first

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
first construction from observable via dot + subscribe 162.55ns 167.806 0.97 696.78ns
sending of values from observable via first to subscriber 1.35ns 0.804429 1.68 1.01ns

foundamental sources

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
empty 87.83ns 86.6752 1.01 735.87ns
error 134.63ns 136.813 0.98 852.02ns
never 49.25ns 46.3477 1.06 283.48ns

from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
from vector with int 106.00ns 101.94 1.04 762.20ns

immediate scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 1.68ns 1.20464 1.39 130.34ns
re-schedule 10 times 22.83ns 20.0 1.14 163.11ns

just

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
just send int 90.27ns 89.7444 1.01 784.41ns
just send variadic 128.55ns 112.705 1.14 842.63ns

last

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
last construction from observable via dot + subscribe 196.72ns 201.972 0.97 429.21ns
sending of values from observable via last to subscriber 2.09ns 2.11856 0.99 1.34ns

map

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
map construction from observable via dot + subscribe 100.99ns 108.515 0.93 340.57ns
sending of values from observable via map to subscriber 1.34ns 1.005 1.33 2.35ns

merge

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
merge 1866.17ns 1993.93 0.94 3882.47ns
merge_with 2241.27ns 2411.23 0.93 4015.23ns

observe_on

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
observe_on construction from observable via dot + subscribe 592.84ns 606.132 0.98 2827.41ns
sending of values from observable via observe_on to subscriber 88.26ns 94.6114 0.93 238.50ns

publish_subject callbacks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
on_next 22.48ns 29.6993 0.76 10.06ns
on_error 0.68ns 0.808996 0.84 16.84ns
on_completed 1.35ns 0.808008 1.67 1.01ns

publish_subject routines

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
construct 214.50ns 207.655 1.03 171.39ns
get_observable 29.46ns 33.3684 0.88 48.90ns
get_subscriber 57.45ns 63.9913 0.90 22.89ns

repeat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
repeat construction from observable via dot + subscribe 4171.23ns 4405.13 0.95 3180.58ns

scan

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
scan construction from observable via dot + subscribe 137.14ns 135.841 1.01 383.86ns
sending of values from observable via scan to subscriber 3.02ns 3.22405 0.94 1.68ns

single-threaded locks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no-lock increment 2.01ns 2.21304 0.91 .
mutex lock increment 18.08ns 22.1886 0.81 .
spin-lock increment 9.06ns 10.4661 0.87 .

skip

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
skip construction from observable via dot + subscribe 133.85ns 134.083 1.00 535.75ns
sending of values from observable via skip to subscriber 4.06ns 3.2082 1.27 2.35ns

switch_on_next

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
switch_on_next construction from observable via dot + subscribe 2369.31ns 2495.33 0.95 4513.40ns
sending of values from observable via switch_on_next to subscriber 604.98ns 623.743 0.97 1105.07ns

take

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take construction from observable via dot + subscribe 191.86ns 195.048 0.98 581.86ns
sending of values from observable via take to subscriber 4.24ns 4.17348 1.02 4.07ns

take_last

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take_last construction from observable via dot + subscribe 231.71ns 234.705 0.99 628.27ns
sending of values from observable via take_last to subscriber 3.73ns 3.23121 1.16 5.90ns

take_until

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take_until construction from observable via dot + subscribe 1086.17ns 1133.77 0.96 1595.99ns
sending of values from observable via take_until to subscriber 8.69ns 10.4454 0.83 1.79ns

trampoline scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 21.34ns 18.5045 1.15 183.82ns
re-schedule 10 times 50.08ns 42.7394 1.17 212.81ns
recursively schedule 10 times 1501.59ns 1384.55 1.08 6511.77ns

window

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
window 2147.13ns 2260.39 0.95 3204.08ns
sending of values from observable via window to subscriber 590.19ns 618.896 0.95 415.64ns

with_latest_from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
with_latest_from construction from observable via dot + subscribe 1118.45ns 1143.58 0.98 1411.93ns
sending of values from observable via with_latest_from to subscriber 25.44ns 29.7105 0.86 3.97ns

ci-windows

Observable construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable construction 1.50ns 2.00797 0.75 0.67ns
Dynamic observable construction 80.30ns 71.0607 1.13 129.48ns
Specific observable construction + as_dynamic 80.56ns 71.1724 1.13 123.38ns

Observable lift

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable lift specific observer 173.11ns 158.827 1.09 1213.14ns
Specific observable lift dynamic observer 214.45ns 187.932 1.14 1253.95ns
Dynamic observable lift specific observer 301.50ns 274.444 1.10 1400.32ns
Dynamic observable lift dynamic observer 261.01ns 254.34 1.03 1298.80ns

Observable subscribe

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe specific observer 138.72ns 121.27 1.14 1381.68ns
Specific observable subscribe dynamic observer 151.79ns 134.793 1.13 1206.41ns
Dynamic observable subscribe specific observer 254.28ns 226.385 1.12 1356.79ns
Dynamic observable subscribe dynamic observer 201.34ns 187.008 1.08 1237.95ns

Observable subscribe #2

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe lambda 139.31ns 120.529 1.16 1168.32ns
Dynamic observable subscribe lambda 255.66ns 225.4 1.13 1350.11ns
Specific observable subscribe lambda without subscription 139.10ns 120.282 1.16 1168.95ns
Dynamic observable subscribe lambda without subscription 255.72ns 228.927 1.12 1347.42ns
Specific observable subscribe specific subscriber 49.20ns 45.6026 1.08 841.81ns
Dynamic observable subscribe specific subscriber 164.27ns 150.57 1.09 1013.96ns
Specific observable subscribe dynamic observer 52.19ns 48.4625 1.08 873.60ns
Dynamic observable subscribe dynamic observer 101.13ns 100.268 1.01 904.29ns

Observer construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer construction 1.50ns 2.00669 0.75 1.50ns
Dynamic observer construction 81.90ns 71.0867 1.15 114.05ns
Specific observer construction + as_dynamic 82.16ns 71.1214 1.16 113.52ns

OnNext

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer OnNext 0.67ns 0.802284 0.83 0.67ns
Dynamic observer OnNext 1.84ns 2.0671 0.89 2.01ns

Subscriber construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Make subsriber 84.75ns 72.478 1.17 348.73ns
Make copy of subscriber 16.71ns 16.1808 1.03 31.58ns
Transform subsriber to dynamic 105.59ns 85.8368 1.23 148.79ns

Subscription

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
composite_subscription create 85.10ns 71.7289 1.19 342.55ns
composite_subscription add 71.67ns 68.0828 1.05 159.71ns
composite_subscription unsubscribe 64.64ns 65.4854 0.99 122.17ns

buffer

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
buffer 378.84ns 376.082 1.01 4456.83ns
sending of values from observable via buffer to subscriber 6.47ns 6.97995 0.93 91.40ns

chains creation test

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
long non-state chain creation + subscribe 284.46ns 310.632 0.92 1710.07ns
long stateful chain creation + subscribe 688.40ns 666.417 1.03 3210.25ns

combine_latest

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
combine_latest construction from observable via dot + subscribe 1801.87ns 1583.0 1.14 2970.75ns
sending of values from observable via combine_latest to subscriber 44.09ns 46.3507 0.95 3.84ns

concat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
concat 2780.89ns 2683.2 1.04 11730.70ns
concat_with 3428.38ns 3408.5 1.01 11580.30ns

distinct_until_changed

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
distinct_until_changed construction from observable via dot + subscribe 200.49ns 191.156 1.05 1024.08ns
sending of values from observable via distinct_until_changed to subscriber 3.35ns 3.64704 0.92 3.60ns

first

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
first construction from observable via dot + subscribe 146.94ns 157.264 0.93 2604.80ns
sending of values from observable via first to subscriber 2.68ns 2.52557 1.06 1.79ns

foundamental sources

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
empty 81.67ns 82.0236 1.00 2375.55ns
error 139.53ns 164.363 0.85 2842.30ns
never 51.17ns 47.1321 1.09 878.73ns

from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
from vector with int 158.19ns 154.158 1.03 2451.27ns

immediate scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 1.34ns 1.60637 0.83 407.97ns
re-schedule 10 times 97.72ns 130.453 0.75 439.05ns

just

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
just send int 88.72ns 86.3512 1.03 2404.73ns
just send variadic 128.98ns 122.75 1.05 2460.40ns

last

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
last construction from observable via dot + subscribe 243.10ns 249.0 0.98 1430.24ns
sending of values from observable via last to subscriber 3.20ns 3.31823 0.96 3.40ns

map

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
map construction from observable via dot + subscribe 104.61ns 111.377 0.94 993.00ns
sending of values from observable via map to subscriber 4.24ns 3.59637 1.18 7.33ns

merge

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
merge 2739.40ns 2620.1 1.05 10931.00ns
merge_with 3386.12ns 3354.0 1.01 11712.70ns

observe_on

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
observe_on construction from observable via dot + subscribe 907.07ns 780.677 1.16 5666.60ns
sending of values from observable via observe_on to subscriber 87.09ns 84.8185 1.03 842.30ns

publish_subject callbacks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
on_next 19.79ns 22.6517 0.87 32.55ns
on_error 3.38ns 2.45466 1.38 18.39ns
on_completed 2.70ns 2.89674 0.93 0.68ns

publish_subject routines

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
construct 358.35ns 331.655 1.08 587.67ns
get_observable 28.47ns 30.9899 0.92 165.06ns
get_subscriber 50.18ns 62.0829 0.81 92.00ns

repeat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
repeat construction from observable via dot + subscribe 6094.40ns 5849.4 1.04 11220.70ns

scan

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
scan construction from observable via dot + subscribe 209.70ns 191.809 1.09 1249.29ns
sending of values from observable via scan to subscriber 5.80ns 5.58416 1.04 8.86ns

single-threaded locks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no-lock increment 1.88ns 3.20815 0.59 .
mutex lock increment 25.74ns 24.0642 1.07 .
spin-lock increment 9.03ns 10.4497 0.86 .

skip

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
skip construction from observable via dot + subscribe 195.79ns 188.419 1.04 1528.33ns
sending of values from observable via skip to subscriber 4.60ns 3.62902 1.27 3.35ns

switch_on_next

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
switch_on_next construction from observable via dot + subscribe 3540.43ns 3412.29 1.04 12024.50ns
sending of values from observable via switch_on_next to subscriber 851.13ns 830.867 1.02 3077.78ns

take

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take construction from observable via dot + subscribe 249.47ns 244.462 1.02 2164.75ns
sending of values from observable via take to subscriber 5.37ns 5.56361 0.96 6.17ns

take_last

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take_last construction from observable via dot + subscribe 345.91ns 347.0 1.00 2466.82ns
sending of values from observable via take_last to subscriber 4.27ns 4.43592 0.96 20.50ns

take_until

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take_until construction from observable via dot + subscribe 1771.12ns 1539.06 1.15 5184.00ns
sending of values from observable via take_until to subscriber 11.12ns 12.8816 0.86 5.00ns

trampoline scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 18.94ns 18.1292 1.04 610.57ns
re-schedule 10 times 120.83ns 143.738 0.84 643.48ns
recursively schedule 10 times 2646.30ns 2421.18 1.09 18855.50ns

window

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
window 3019.00ns 2956.78 1.02 9650.67ns
sending of values from observable via window to subscriber 840.52ns 829.742 1.01 1618.69ns

with_latest_from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
with_latest_from construction from observable via dot + subscribe 2009.25ns 1871.58 1.07 3723.00ns
sending of values from observable via with_latest_from to subscriber 37.80ns 35.7485 1.06 6.69ns

@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 2 Code Smells

0.0% 0.0% Coverage
0.0% 0.0% Duplication

@AlexInLog AlexInLog merged commit 2436824 into main Sep 12, 2022
@AlexInLog AlexInLog deleted the minor_delay branch September 12, 2022 20:52
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