Skip to content

Improve doxygen docs and make it much more detailed No1#317

Merged
victimsnino merged 10 commits into
mainfrom
doxygen
Dec 25, 2022
Merged

Improve doxygen docs and make it much more detailed No1#317
victimsnino merged 10 commits into
mainfrom
doxygen

Conversation

@victimsnino
Copy link
Copy Markdown
Owner

No description provided.

@codecov
Copy link
Copy Markdown

codecov Bot commented Dec 21, 2022

Codecov Report

Merging #317 (4a63942) into main (1cea027) will decrease coverage by 0.00%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main     #317      +/-   ##
==========================================
- Coverage   97.88%   97.88%   -0.01%     
==========================================
  Files         114      114              
  Lines        1795     1794       -1     
==========================================
- Hits         1757     1756       -1     
  Misses         38       38              
Impacted Files Coverage Δ
src/rpp/rpp/operators/fwd/buffer.hpp 100.00% <ø> (ø)
src/rpp/rpp/operators/fwd/combine_latest.hpp 100.00% <ø> (ø)
src/rpp/rpp/operators/fwd/concat.hpp 100.00% <ø> (ø)
src/rpp/rpp/operators/fwd/debounce.hpp 100.00% <ø> (ø)
src/rpp/rpp/operators/fwd/delay.hpp 100.00% <ø> (ø)
...c/rpp/rpp/operators/fwd/distinct_until_changed.hpp 100.00% <ø> (ø)
src/rpp/rpp/operators/fwd/filter.hpp 100.00% <ø> (ø)
src/rpp/rpp/operators/fwd/first.hpp 100.00% <ø> (ø)
src/rpp/rpp/operators/fwd/flat_map.hpp 100.00% <ø> (ø)
src/rpp/rpp/operators/fwd/group_by.hpp 100.00% <ø> (ø)
... and 10 more

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

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Dec 21, 2022

BENCHMARK RESULTS (AUTOGENERATED)

ci-macos

Observable construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable construction 0.32ns 0.282249 1.13 0.29ns
Dynamic observable construction 75.93ns 74.4764 1.02 105.56ns
Specific observable construction + as_dynamic 85.61ns 69.5801 1.23 109.18ns

Observable lift

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable lift specific observer 151.42ns 161.195 0.94 1105.60ns
Specific observable lift dynamic observer 186.22ns 161.521 1.15 1136.53ns
Dynamic observable lift specific observer 292.99ns 238.145 1.23 1316.29ns
Dynamic observable lift dynamic observer 252.84ns 208.995 1.21 1306.06ns

Observable subscribe

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe specific observer 134.98ns 111.353 1.21 1073.16ns
Specific observable subscribe dynamic observer 139.65ns 141.302 0.99 1104.60ns
Dynamic observable subscribe specific observer 227.99ns 635.026 0.36 1276.94ns
Dynamic observable subscribe dynamic observer 163.06ns 164.1 0.99 1183.58ns

Observable subscribe #2

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe lambda 166.81ns 355.037 0.47 1092.66ns
Dynamic observable subscribe lambda 326.55ns 251.3 1.30 1327.64ns
Specific observable subscribe lambda without subscription 150.41ns 123.032 1.22 1070.45ns
Dynamic observable subscribe lambda without subscription 262.53ns 203.06 1.29 1383.97ns
Specific observable subscribe specific subscriber 38.91ns 29.9847 1.30 792.12ns
Dynamic observable subscribe specific subscriber 151.38ns 140.371 1.08 990.12ns
Specific observable subscribe dynamic observer 33.36ns 31.2702 1.07 843.41ns
Dynamic observable subscribe dynamic observer 85.76ns 71.7425 1.20 861.67ns

Observer construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer construction 0.30ns 0.280557 1.07 0.29ns
Dynamic observer construction 131.92ns 1010.53 0.13 101.12ns
Specific observer construction + as_dynamic 103.16ns 72.1017 1.43 100.58ns

OnNext

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer OnNext 0.95ns 0.78895 1.20 0.78ns
Dynamic observer OnNext 2.44ns 2.49368 0.98 2.19ns

Subscriber construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Make subsriber 154.26ns 94.154 1.64 296.09ns
Make copy of subscriber 14.33ns 13.5649 1.06 25.46ns
Transform subsriber to dynamic 139.78ns 198.985 0.70 126.08ns

Subscription

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
composite_subscription create 106.61ns 79.1606 1.35 292.98ns
composite_subscription add 67.72ns 184.167 0.37 107.27ns
composite_subscription unsubscribe 89.87ns 81.6995 1.10 77.31ns

buffer

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
buffer 1586.62ns 1380.22 1.15 3107.09ns
sending of values from observable via buffer to subscriber 6.40ns 5.81758 1.10 86.28ns

chains creation test

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
long non-state chain creation + subscribe 228.82ns 219.85 1.04 1296.58ns
long stateful chain creation + subscribe 721.35ns 524.842 1.37 2608.66ns

combine_latest

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
combine_latest construction from observable via dot + subscribe 1601.84ns 1781.2 0.90 .
sending of values from observable via combine_latest to subscriber 22.87ns 23.2213 0.98 .

concat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
concat 5181.93ns 4342.49 1.19 9288.78ns
concat_with 4728.51ns 4174.02 1.13 10397.60ns

distinct_until_changed

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
distinct_until_changed construction from observable via dot + subscribe 166.79ns 148.199 1.13 894.68ns
sending of values from observable via distinct_until_changed to subscriber 2.46ns 2.24888 1.09 1.11ns

first

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
first construction from observable via dot + subscribe 206.25ns 127.793 1.61 2106.18ns
sending of values from observable via first to subscriber 0.62ns 0.839644 0.73 0.87ns

foundamental sources

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
empty 69.98ns 65.0052 1.08 2044.08ns
error 113.18ns 111.637 1.01 2324.82ns
never 34.89ns 32.6538 1.07 821.97ns

from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
from vector with int 753.19ns 602.197 1.25 2226.83ns

immediate scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 2.23ns 2.23081 1.00 386.88ns
re-schedule 10 times 25.83ns 27.0266 0.96 419.44ns

just

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
just send int 440.85ns 616.408 0.72 2177.01ns
just send variadic 2216.16ns 1892.03 1.17 2226.42ns

last

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
last construction from observable via dot + subscribe 315.69ns 214.962 1.47 1224.76ns
sending of values from observable via last to subscriber 4.54ns 2.50481 1.81 1.29ns

map

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
map construction from observable via dot + subscribe 67.24ns 106.897 0.63 869.26ns
sending of values from observable via map to subscriber 1.37ns 1.11581 1.23 1.40ns

merge

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
merge 5625.62ns 4339.58 1.30 9283.56ns
merge_with 5330.25ns 6044.25 0.88 10142.10ns

observe_on

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
observe_on construction from observable via dot + subscribe 1544.82ns 1202.88 1.28 10653.80ns
sending of values from observable via observe_on to subscriber 235.57ns 218.406 1.08 977.54ns

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 603.55ns 576.102 1.05 1530.11ns

publish_subject callbacks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
on_next 22.01ns 20.6815 1.06 27.67ns
on_error 0.56ns 0.571689 0.98 16.94ns
on_completed 0.75ns 0.570408 1.32 2.25ns

publish_subject routines

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
construct 324.65ns 362.611 0.90 517.38ns
get_observable 26.54ns 26.4678 1.00 158.70ns
get_subscriber 51.96ns 51.8754 1.00 76.02ns

repeat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
repeat construction from observable via dot + subscribe 6496.04ns 6048.15 1.07 9242.29ns

scan

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
scan construction from observable via dot + subscribe 170.87ns 148.962 1.15 1097.80ns
sending of values from observable via scan to subscriber 2.68ns 2.49973 1.07 1.96ns

single-threaded locks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no-lock increment 1.93ns 1.82107 1.06 .
mutex lock increment 23.89ns 22.9284 1.04 .
spin-lock increment 8.28ns 8.23563 1.01 .

skip

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
skip construction from observable via dot + subscribe 186.16ns 150.183 1.24 1398.19ns
sending of values from observable via skip to subscriber 2.35ns 2.88259 0.82 1.88ns

switch_on_next

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
switch_on_next construction from observable via dot + subscribe 5391.06ns 4719.91 1.14 9991.52ns
sending of values from observable via switch_on_next to subscriber 1048.89ns 963.191 1.09 2553.96ns

take

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take construction from observable via dot + subscribe 221.50ns 262.814 0.84 1780.85ns
sending of values from observable via take to subscriber 3.32ns 2.71545 1.22 5.43ns

take_last

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take_last construction from observable via dot + subscribe 362.65ns 355.318 1.02 2002.45ns
sending of values from observable via take_last to subscriber 2.95ns 2.72643 1.08 5.04ns

take_until

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take_until construction from observable via dot + subscribe 2658.48ns 2339.24 1.14 4350.76ns
sending of values from observable via take_until to subscriber 8.90ns 7.80139 1.14 2.23ns

timeout

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
timeout construction from observable via dot + subscribe with run_loop 7151.15ns 6286.12 1.14 4899.45ns
sending of values from observable via timeout to subscriber with unreachable timeout interval with run_loop 78.55ns 69.9051 1.12 917.04ns

trampoline scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 29.37ns 29.9274 0.98 573.48ns
re-schedule 10 times 112.44ns 142.61 0.79 613.61ns
recursively schedule 10 times 2006.13ns 1985.53 1.01 15598.20ns

window

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
window 5093.54ns 4205.06 1.21 7925.60ns
sending of values from observable via window to subscriber 852.24ns 1149.46 0.74 1398.68ns

with_latest_from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
with_latest_from construction from observable via dot + subscribe 2203.91ns 1579.49 1.40 .
sending of values from observable via with_latest_from to subscriber 27.20ns 22.8915 1.19 .

ci-ubuntu-clang

Observable construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable construction 0.40ns 0.40297 1.00 0.40ns
Dynamic observable construction 19.31ns 19.2765 1.00 29.50ns
Specific observable construction + as_dynamic 18.86ns 18.8868 1.00 29.13ns

Observable lift

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable lift specific observer 51.62ns 51.4931 1.00 332.81ns
Specific observable lift dynamic observer 53.00ns 53.1799 1.00 351.44ns
Dynamic observable lift specific observer 84.87ns 84.3488 1.01 387.79ns
Dynamic observable lift dynamic observer 79.15ns 79.1791 1.00 367.47ns

Observable subscribe

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe specific observer 33.25ns 32.7047 1.02 330.95ns
Specific observable subscribe dynamic observer 34.64ns 34.6166 1.00 347.92ns
Dynamic observable subscribe specific observer 64.37ns 67.1302 0.96 371.80ns
Dynamic observable subscribe dynamic observer 60.70ns 60.9164 1.00 359.41ns

Observable subscribe #2

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe lambda 34.31ns 33.8263 1.01 331.62ns
Dynamic observable subscribe lambda 60.59ns 59.8595 1.01 371.00ns
Specific observable subscribe lambda without subscription 33.91ns 33.854 1.00 331.13ns
Dynamic observable subscribe lambda without subscription 57.67ns 58.615 0.98 374.72ns
Specific observable subscribe specific subscriber 14.44ns 14.4635 1.00 272.55ns
Dynamic observable subscribe specific subscriber 39.67ns 40.9321 0.97 314.01ns
Specific observable subscribe dynamic observer 14.46ns 14.4433 1.00 284.47ns
Dynamic observable subscribe dynamic observer 36.82ns 37.6007 0.98 295.69ns

Observer construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer construction 0.40ns 0.402297 1.00 0.40ns
Dynamic observer construction 18.91ns 18.9478 1.00 25.13ns
Specific observer construction + as_dynamic 18.88ns 18.8557 1.00 24.74ns

OnNext

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer OnNext 0.44ns 0.44182 1.00 0.44ns
Dynamic observer OnNext 1.61ns 1.60836 1.00 2.01ns

Subscriber construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Make subsriber 20.80ns 20.8142 1.00 63.48ns
Make copy of subscriber 10.43ns 10.434 1.00 10.67ns
Transform subsriber to dynamic 20.77ns 20.695 1.00 28.52ns

Subscription

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
composite_subscription create 20.36ns 21.3371 0.95 56.16ns
composite_subscription add 21.37ns 21.8887 0.98 90.92ns
composite_subscription unsubscribe 26.86ns 26.9413 1.00 26.57ns

buffer

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
buffer 789.45ns 738.121 1.07 1946.87ns
sending of values from observable via buffer to subscriber 4.83ns 4.82901 1.00 24.50ns

chains creation test

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
long non-state chain creation + subscribe 133.61ns 134.894 0.99 601.60ns
long stateful chain creation + subscribe 151.22ns 157.642 0.96 1713.62ns

combine_latest

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
combine_latest construction from observable via dot + subscribe 425.64ns 418.5 1.02 .
sending of values from observable via combine_latest to subscriber 8.13ns 8.17365 0.99 .

concat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
concat 1843.82ns 1803.0 1.02 3860.87ns
concat_with 1655.84ns 1658.39 1.00 4474.29ns

distinct_until_changed

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
distinct_until_changed construction from observable via dot + subscribe 51.84ns 52.0584 1.00 314.58ns
sending of values from observable via distinct_until_changed to subscriber 2.01ns 2.00906 1.00 1.32ns

first

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
first construction from observable via dot + subscribe 81.97ns 67.7081 1.21 742.52ns
sending of values from observable via first to subscriber 0.40ns 1.20643 0.33 0.81ns

foundamental sources

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
empty 37.25ns 37.2625 1.00 726.51ns
error 80.87ns 80.8931 1.00 783.60ns
never 14.50ns 14.6594 0.99 283.89ns

from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
from vector with int 229.05ns 233.051 0.98 759.00ns

immediate scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 0.79ns 0.796847 1.00 127.42ns
re-schedule 10 times 7.25ns 7.25365 1.00 158.04ns

just

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
just send int 197.88ns 207.293 0.95 721.26ns
just send variadic 1143.77ns 1167.2 0.98 802.40ns

last

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
last construction from observable via dot + subscribe 109.36ns 90.0311 1.21 447.59ns
sending of values from observable via last to subscriber 3.12ns 3.22829 0.97 1.21ns

map

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
map construction from observable via dot + subscribe 41.26ns 40.9369 1.01 302.36ns
sending of values from observable via map to subscriber 0.80ns 0.804452 1.00 1.80ns

merge

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
merge 1806.64ns 1802.91 1.00 3837.25ns
merge_with 1639.58ns 1652.0 0.99 4268.99ns

observe_on

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
observe_on construction from observable via dot + subscribe 538.25ns 551.5 0.98 2736.54ns
sending of values from observable via observe_on to subscriber 122.03ns 122.201 1.00 242.81ns

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 224.59ns 230.031 0.98 1025.40ns

publish_subject callbacks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
on_next 20.11ns 20.1568 1.00 14.13ns
on_error 0.81ns 0.805673 1.01 18.99ns
on_completed 0.81ns 0.806763 1.00 0.60ns

publish_subject routines

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
construct 108.48ns 120.163 0.90 161.15ns
get_observable 10.73ns 10.7315 1.00 51.18ns
get_subscriber 29.93ns 29.9463 1.00 23.80ns

repeat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
repeat construction from observable via dot + subscribe 2084.14ns 2084.0 1.00 3505.22ns

scan

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
scan construction from observable via dot + subscribe 47.15ns 47.1865 1.00 407.43ns
sending of values from observable via scan to subscriber 2.01ns 2.01121 1.00 1.99ns

single-threaded locks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no-lock increment 3.17ns 3.14789 1.01 .
mutex lock increment 6.47ns 6.67834 0.97 .
spin-lock increment 10.43ns 10.4246 1.00 .

skip

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
skip construction from observable via dot + subscribe 47.54ns 47.3387 1.00 567.92ns
sending of values from observable via skip to subscriber 2.43ns 2.08769 1.17 2.58ns

switch_on_next

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
switch_on_next construction from observable via dot + subscribe 1828.66ns 1848.33 0.99 3838.55ns
sending of values from observable via switch_on_next to subscriber 3680.66ns 3908.52 0.94 881.93ns

take

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take construction from observable via dot + subscribe 81.56ns 82.7884 0.99 599.00ns
sending of values from observable via take to subscriber 2.41ns 2.4093 1.00 2.41ns

take_last

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take_last construction from observable via dot + subscribe 109.97ns 116.55 0.94 651.11ns
sending of values from observable via take_last to subscriber 3.25ns 3.25614 1.00 3.94ns

take_until

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take_until construction from observable via dot + subscribe 910.58ns 916.686 0.99 1521.85ns
sending of values from observable via take_until to subscriber 11.94ns 10.4421 1.14 2.01ns

timeout

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
timeout construction from observable via dot + subscribe with run_loop 803.59ns 795.465 1.01 13540.70ns
sending of values from observable via timeout to subscriber with unreachable timeout interval with run_loop 42.97ns 42.9969 1.00 15983.00ns

trampoline scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 7.17ns 7.21646 0.99 187.96ns
re-schedule 10 times 28.49ns 24.5516 1.16 216.65ns
recursively schedule 10 times 1452.57ns 1343.89 1.08 7329.43ns

window

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
window 1691.05ns 1658.72 1.02 3402.55ns
sending of values from observable via window to subscriber 273.19ns 277.564 0.98 410.53ns

with_latest_from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
with_latest_from construction from observable via dot + subscribe 490.82ns 494.692 0.99 .
sending of values from observable via with_latest_from to subscriber 7.74ns 7.65835 1.01 .

ci-ubuntu-gcc

Observable construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable construction 0.33ns 0.402203 0.83 0.34ns
Dynamic observable construction 32.49ns 28.9989 1.12 51.85ns
Specific observable construction + as_dynamic 32.47ns 29.0911 1.12 51.84ns

Observable lift

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable lift specific observer 98.44ns 96.5615 1.02 729.06ns
Specific observable lift dynamic observer 126.83ns 130.093 0.97 779.70ns
Dynamic observable lift specific observer 200.06ns 191.542 1.04 849.57ns
Dynamic observable lift dynamic observer 233.30ns 208.359 1.12 807.07ns

Observable subscribe

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe specific observer 61.82ns 59.8869 1.03 705.29ns
Specific observable subscribe dynamic observer 78.14ns 77.2686 1.01 736.16ns
Dynamic observable subscribe specific observer 133.38ns 129.686 1.03 793.38ns
Dynamic observable subscribe dynamic observer 128.44ns 133.558 0.96 739.91ns

Observable subscribe #2

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe lambda 61.67ns 60.5611 1.02 703.03ns
Dynamic observable subscribe lambda 132.94ns 129.814 1.02 789.98ns
Specific observable subscribe lambda without subscription 61.72ns 61.3155 1.01 707.52ns
Dynamic observable subscribe lambda without subscription 132.75ns 129.766 1.02 790.09ns
Specific observable subscribe specific subscriber 30.44ns 26.9698 1.13 598.83ns
Dynamic observable subscribe specific subscriber 99.12ns 97.1774 1.02 684.33ns
Specific observable subscribe dynamic observer 30.52ns 27.7856 1.10 623.74ns
Dynamic observable subscribe dynamic observer 85.12ns 91.0463 0.93 634.62ns

Observer construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer construction 0.34ns 0.402181 0.83 0.33ns
Dynamic observer construction 32.85ns 30.267 1.09 45.22ns
Specific observer construction + as_dynamic 32.47ns 28.9209 1.12 47.57ns

OnNext

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer OnNext 0.33ns 0.440137 0.76 0.33ns
Dynamic observer OnNext 2.01ns 2.00552 1.00 2.01ns

Subscriber construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Make subsriber 35.57ns 35.3376 1.01 136.15ns
Make copy of subscriber 16.71ns 16.0654 1.04 31.74ns
Transform subsriber to dynamic 45.20ns 45.3189 1.00 78.27ns

Subscription

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
composite_subscription create 35.90ns 34.127 1.05 128.92ns
composite_subscription add 47.27ns 51.6357 0.92 118.01ns
composite_subscription unsubscribe 43.33ns 44.8263 0.97 38.20ns

buffer

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
buffer 954.48ns 973.965 0.98 2922.66ns
sending of values from observable via buffer to subscriber 6.32ns 6.65873 0.95 31.33ns

chains creation test

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
long non-state chain creation + subscribe 289.01ns 324.813 0.89 1382.20ns
long stateful chain creation + subscribe 430.33ns 467.53 0.92 3968.55ns

combine_latest

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
combine_latest construction from observable via dot + subscribe 863.53ns 853.717 1.01 .
sending of values from observable via combine_latest to subscriber 9.00ns 7.50533 1.20 .

concat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
concat 3017.93ns 3099.79 0.97 7493.06ns
concat_with 2785.21ns 2863.45 0.97 8006.81ns

distinct_until_changed

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
distinct_until_changed construction from observable via dot + subscribe 121.33ns 120.394 1.01 738.15ns
sending of values from observable via distinct_until_changed to subscriber 2.68ns 3.21247 0.83 1.34ns

first

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
first construction from observable via dot + subscribe 173.18ns 146.706 1.18 1668.63ns
sending of values from observable via first to subscriber 1.34ns 1.20642 1.11 1.01ns

foundamental sources

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
empty 67.47ns 68.1344 0.99 1724.91ns
error 118.96ns 117.488 1.01 1747.67ns
never 32.28ns 29.0415 1.11 631.30ns

from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
from vector with int 333.62ns 327.791 1.02 1748.60ns

immediate scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 1.68ns 1.19542 1.40 279.55ns
re-schedule 10 times 22.79ns 20.2072 1.13 310.80ns

just

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
just send int 300.86ns 300.826 1.00 1752.20ns
just send variadic 1423.92ns 1451.38 0.98 1794.66ns

last

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
last construction from observable via dot + subscribe 210.50ns 182.518 1.15 1014.61ns
sending of values from observable via last to subscriber 2.87ns 1.84347 1.56 1.34ns

map

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
map construction from observable via dot + subscribe 82.00ns 82.8481 0.99 732.79ns
sending of values from observable via map to subscriber 1.34ns 0.802501 1.67 2.68ns

merge

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
merge 2922.03ns 3057.49 0.96 9096.33ns
merge_with 2762.03ns 2837.18 0.97 8941.08ns

observe_on

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
observe_on construction from observable via dot + subscribe 813.15ns 817.915 0.99 3268.82ns
sending of values from observable via observe_on to subscriber 159.31ns 156.652 1.02 517.74ns

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 444.94ns 462.812 0.96 1494.79ns

publish_subject callbacks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
on_next 22.39ns 29.6801 0.75 15.86ns
on_error 0.67ns 0.808479 0.83 16.86ns
on_completed 0.67ns 0.807994 0.83 0.67ns

publish_subject routines

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
construct 213.86ns 213.485 1.00 382.93ns
get_observable 29.41ns 33.3337 0.88 98.44ns
get_subscriber 57.29ns 63.6163 0.90 97.46ns

repeat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
repeat construction from observable via dot + subscribe 4226.05ns 4339.7 0.97 7045.89ns

scan

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
scan construction from observable via dot + subscribe 117.29ns 114.449 1.02 896.39ns
sending of values from observable via scan to subscriber 2.01ns 2.01125 1.00 1.61ns

single-threaded locks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no-lock increment 2.01ns 2.10556 0.95 .
mutex lock increment 7.38ns 6.73693 1.09 .
spin-lock increment 9.14ns 10.4275 0.88 .

skip

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
skip construction from observable via dot + subscribe 115.77ns 115.077 1.01 1089.67ns
sending of values from observable via skip to subscriber 2.78ns 3.07589 0.91 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 3169.93ns 3262.77 0.97 10562.50ns
sending of values from observable via switch_on_next to subscriber 796.82ns 832.941 0.96 2932.40ns

take

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take construction from observable via dot + subscribe 174.91ns 173.453 1.01 1354.19ns
sending of values from observable via take to subscriber 2.86ns 4.0492 0.71 4.04ns

take_last

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take_last construction from observable via dot + subscribe 209.85ns 216.404 0.97 1404.51ns
sending of values from observable via take_last to subscriber 2.94ns 3.04575 0.97 5.94ns

take_until

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take_until construction from observable via dot + subscribe 1612.12ns 1663.44 0.97 3526.37ns
sending of values from observable via take_until to subscriber 9.03ns 11.9828 0.75 1.84ns

timeout

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
timeout construction from observable via dot + subscribe with run_loop 1126.29ns 1120.14 1.01 15763.50ns
sending of values from observable via timeout to subscriber with unreachable timeout interval with run_loop 60.58ns 66.1562 0.92 1831.50ns

trampoline scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 21.15ns 20.2926 1.04 369.84ns
re-schedule 10 times 50.81ns 40.9747 1.24 401.02ns
recursively schedule 10 times 1470.83ns 1473.71 1.00 19527.20ns

window

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
window 2766.21ns 2876.72 0.96 5991.65ns
sending of values from observable via window to subscriber 547.57ns 564.452 0.97 971.04ns

with_latest_from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
with_latest_from construction from observable via dot + subscribe 1069.02ns 1064.68 1.00 .
sending of values from observable via with_latest_from to subscriber 9.53ns 7.77856 1.23 .

ci-windows

Observable construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable construction 2.00ns 1.80646 1.11 0.41ns
Dynamic observable construction 70.88ns 91.8944 0.77 114.84ns
Specific observable construction + as_dynamic 71.04ns 97.6367 0.73 114.75ns

Observable lift

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable lift specific observer 135.68ns 173.28 0.78 1176.95ns
Specific observable lift dynamic observer 168.97ns 208.736 0.81 1233.45ns
Dynamic observable lift specific observer 269.43ns 339.247 0.79 1385.63ns
Dynamic observable lift dynamic observer 237.68ns 287.927 0.83 1276.95ns

Observable subscribe

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe specific observer 98.51ns 136.389 0.72 1149.50ns
Specific observable subscribe dynamic observer 121.13ns 156.155 0.78 1171.95ns
Dynamic observable subscribe specific observer 207.71ns 274.426 0.76 1323.53ns
Dynamic observable subscribe dynamic observer 171.51ns 216.856 0.79 1217.71ns

Observable subscribe #2

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe lambda 100.06ns 168.156 0.60 1152.23ns
Dynamic observable subscribe lambda 208.39ns 272.3 0.77 1331.42ns
Specific observable subscribe lambda without subscription 100.49ns 132.876 0.76 1151.64ns
Dynamic observable subscribe lambda without subscription 211.56ns 263.216 0.80 1316.00ns
Specific observable subscribe specific subscriber 27.71ns 35.9267 0.77 857.28ns
Dynamic observable subscribe specific subscriber 133.58ns 177.428 0.75 1018.84ns
Specific observable subscribe dynamic observer 27.67ns 37.337 0.74 886.04ns
Dynamic observable subscribe dynamic observer 80.46ns 213.114 0.38 927.37ns

Observer construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer construction 2.01ns 1.79835 1.12 2.01ns
Dynamic observer construction 71.61ns 100.433 0.71 107.57ns
Specific observer construction + as_dynamic 71.37ns 97.4633 0.73 107.59ns

OnNext

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer OnNext 0.53ns 0.774009 0.68 0.80ns
Dynamic observer OnNext 2.01ns 2.43616 0.82 1.61ns

Subscriber construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Make subsriber 76.27ns 104.138 0.73 324.73ns
Make copy of subscriber 16.05ns 19.1566 0.84 33.55ns
Transform subsriber to dynamic 86.67ns 116.639 0.74 148.27ns

Subscription

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
composite_subscription create 72.27ns 101.004 0.72 318.40ns
composite_subscription add 71.70ns 86.4397 0.83 171.07ns
composite_subscription unsubscribe 62.07ns 77.5532 0.80 114.28ns

buffer

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
buffer 1048.21ns 1306.52 0.80 4450.67ns
sending of values from observable via buffer to subscriber 7.22ns 7.65785 0.94 88.06ns

chains creation test

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
long non-state chain creation + subscribe 294.73ns 326.183 0.90 1717.47ns
long stateful chain creation + subscribe 638.51ns 813.816 0.78 3248.25ns

combine_latest

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
combine_latest construction from observable via dot + subscribe 1552.06ns 1981.21 0.78 .
sending of values from observable via combine_latest to subscriber 36.57ns 42.1423 0.87 .

concat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
concat 4022.86ns 6410.14 0.63 11370.00ns
concat_with 4242.67ns 5676.67 0.75 11617.00ns

distinct_until_changed

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
distinct_until_changed construction from observable via dot + subscribe 173.62ns 219.809 0.79 1028.46ns
sending of values from observable via distinct_until_changed to subscriber 3.22ns 4.01293 0.80 3.61ns

first

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
first construction from observable via dot + subscribe 219.30ns 156.281 1.40 2675.30ns
sending of values from observable via first to subscriber 2.02ns 3.53771 0.57 1.22ns

foundamental sources

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
empty 63.13ns 78.1493 0.81 2380.55ns
error 119.48ns 134.471 0.89 2513.20ns
never 28.10ns 36.8086 0.76 886.89ns

from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
from vector with int 501.54ns 638.556 0.79 2470.10ns

immediate scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 1.61ns 2.11162 0.76 409.20ns
re-schedule 10 times 130.09ns 117.574 1.11 447.09ns

just

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
just send int 364.37ns 502.217 0.73 2381.55ns
just send variadic 1279.25ns 1592.65 0.80 2466.70ns

last

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
last construction from observable via dot + subscribe 297.97ns 269.0 1.11 1452.76ns
sending of values from observable via last to subscriber 4.43ns 4.05481 1.09 3.33ns

map

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
map construction from observable via dot + subscribe 99.31ns 105.448 0.94 986.52ns
sending of values from observable via map to subscriber 3.62ns 4.5067 0.80 7.14ns

merge

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
merge 4021.14ns 6286.0 0.64 11155.00ns
merge_with 4106.17ns 4964.17 0.83 11736.30ns

observe_on

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
observe_on construction from observable via dot + subscribe 1159.43ns 1512.19 0.77 5640.60ns
sending of values from observable via observe_on to subscriber 193.04ns 237.347 0.81 781.27ns

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 620.05ns 793.921 0.78 1897.85ns

publish_subject callbacks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
on_next 22.95ns 22.7272 1.01 28.69ns
on_error 2.45ns 3.97673 0.62 19.66ns
on_completed 2.90ns 3.21023 0.90 0.81ns

publish_subject routines

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
construct 337.02ns 420.154 0.80 610.34ns
get_observable 30.97ns 31.5879 0.98 156.42ns
get_subscriber 62.02ns 60.2642 1.03 100.45ns

repeat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
repeat construction from observable via dot + subscribe 5885.20ns 7142.6 0.82 11344.30ns

scan

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
scan construction from observable via dot + subscribe 170.32ns 227.163 0.75 1266.35ns
sending of values from observable via scan to subscriber 5.66ns 6.62537 0.85 8.46ns

single-threaded locks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no-lock increment 2.81ns 2.34682 1.20 .
mutex lock increment 24.28ns 31.7571 0.76 .
spin-lock increment 10.43ns 11.0832 0.94 .

skip

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
skip construction from observable via dot + subscribe 165.46ns 216.12 0.77 1581.20ns
sending of values from observable via skip to subscriber 3.22ns 4.01532 0.80 3.48ns

switch_on_next

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
switch_on_next construction from observable via dot + subscribe 4562.00ns 5954.83 0.77 11956.50ns
sending of values from observable via switch_on_next to subscriber 1077.81ns 1296.5 0.83 3103.67ns

take

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take construction from observable via dot + subscribe 225.65ns 271.573 0.83 2192.25ns
sending of values from observable via take to subscriber 5.46ns 6.70853 0.81 5.69ns

take_last

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take_last construction from observable via dot + subscribe 309.58ns 417.069 0.74 2422.00ns
sending of values from observable via take_last to subscriber 4.45ns 5.07748 0.88 20.80ns

take_until

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take_until construction from observable via dot + subscribe 2248.36ns 2795.64 0.80 5220.60ns
sending of values from observable via take_until to subscriber 12.48ns 13.8666 0.90 5.24ns

timeout

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
timeout construction from observable via dot + subscribe with run_loop 1618.54ns 2128.71 0.76 5671.00ns
sending of values from observable via timeout to subscriber with unreachable timeout interval with run_loop 57.86ns 66.4587 0.87 1359.24ns

trampoline scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 18.74ns 21.5694 0.87 600.27ns
re-schedule 10 times 144.11ns 224.63 0.64 643.64ns
recursively schedule 10 times 2474.36ns 3187.7 0.78 19407.50ns

window

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
window 3661.29ns 4487.88 0.82 9573.33ns
sending of values from observable via window to subscriber 813.68ns 992.516 0.82 1586.94ns

with_latest_from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
with_latest_from construction from observable via dot + subscribe 1870.00ns 2640.0 0.71 .
sending of values from observable via with_latest_from to subscriber 26.34ns 34.1043 0.77 .

Copy link
Copy Markdown
Contributor

@github-actions github-actions Bot left a comment

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)

{
for(size_t i = 0; i < 10; ++i)
{
auto copy = sub;
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-copy-initialization ⚠️
local copy copy of the variable sub is never modified; consider avoiding the copy

Suggested change
auto copy = sub;
const auto copy = sub;

{
for(size_t i = 0; i < 10; ++i)
{
auto copy = sub;
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-copy-initialization ⚠️
local copy copy of the variable sub is never modified; consider avoiding the copy

Suggested change
auto copy = sub;
auto& copy = sub;

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

0.0% 0.0% Coverage
0.0% 0.0% Duplication

@victimsnino victimsnino marked this pull request as ready for review December 25, 2022 19:42
@victimsnino victimsnino changed the title Improve doxygen docs and make it much more detailed Improve doxygen docs and make it much more detailed No1 Dec 25, 2022
@victimsnino victimsnino merged commit 4d52c08 into main Dec 25, 2022
@victimsnino victimsnino deleted the doxygen branch December 25, 2022 19:43
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