Skip to content

Simplify templates for current_thread a bit#285

Merged
AlexInLog merged 2 commits into
mainfrom
simplify_template
Oct 27, 2022
Merged

Simplify templates for current_thread a bit#285
AlexInLog merged 2 commits into
mainfrom
simplify_template

Conversation

@AlexInLog

Copy link
Copy Markdown
Owner

No description provided.

@codecov

codecov Bot commented Oct 27, 2022

Copy link
Copy Markdown

Codecov Report

Merging #285 (bda98a2) into main (f315b18) will decrease coverage by 0.06%.
The diff coverage is 92.30%.

@@            Coverage Diff             @@
##             main     #285      +/-   ##
==========================================
- Coverage   98.70%   98.63%   -0.07%     
==========================================
  Files         105      105              
  Lines        1466     1467       +1     
==========================================
  Hits         1447     1447              
- Misses         19       20       +1     
Impacted Files Coverage Δ
src/rpp/rpp/schedulers/trampoline_scheduler.hpp 98.03% <85.71%> (-1.97%) ⬇️
src/rpp/rpp/observables/specific_observable.hpp 100.00% <100.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.33522 1.00 0.34ns
Dynamic observable construction 29.16ns 29.2115 1.00 24.71ns
Specific observable construction + as_dynamic 29.15ns 29.1623 1.00 24.76ns

Observable lift

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable lift specific observer 88.86ns 114.94 0.77 293.88ns
Specific observable lift dynamic observer 110.79ns 138.08 0.80 310.97ns
Dynamic observable lift specific observer 174.50ns 191.397 0.91 339.83ns
Dynamic observable lift dynamic observer 176.11ns 190.883 0.92 329.72ns

Observable subscribe

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe specific observer 58.06ns 77.2069 0.75 290.18ns
Specific observable subscribe dynamic observer 71.61ns 88.0225 0.81 299.80ns
Dynamic observable subscribe specific observer 125.18ns 150.737 0.83 332.26ns
Dynamic observable subscribe dynamic observer 124.47ns 139.627 0.89 318.83ns

Observable subscribe #2

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe lambda 57.92ns 76.6888 0.76 289.17ns
Dynamic observable subscribe lambda 124.18ns 140.249 0.89 328.31ns
Specific observable subscribe lambda without subscription 58.09ns 76.222 0.76 306.90ns
Dynamic observable subscribe lambda without subscription 123.76ns 140.999 0.88 327.91ns
Specific observable subscribe specific subscriber 27.81ns 43.1858 0.64 223.79ns
Dynamic observable subscribe specific subscriber 88.52ns 105.639 0.84 266.80ns
Specific observable subscribe dynamic observer 27.83ns 43.532 0.64 239.67ns
Dynamic observable subscribe dynamic observer 77.83ns 96.1464 0.81 257.63ns

Observer construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer construction 0.33ns 0.335079 1.00 0.34ns
Dynamic observer construction 29.23ns 31.5172 0.93 20.84ns
Specific observer construction + as_dynamic 29.16ns 29.1341 1.00 21.35ns

OnNext

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer OnNext 0.67ns 0.669068 1.00 0.67ns
Dynamic observer OnNext 2.01ns 2.01145 1.00 2.44ns

Subscriber construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Make subsriber 33.81ns 33.8302 1.00 64.42ns
Make copy of subscriber 16.74ns 16.7104 1.00 4.71ns
Transform subsriber to dynamic 45.85ns 45.7925 1.00 25.88ns

Subscription

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
composite_subscription create 33.85ns 33.8077 1.00 51.89ns
composite_subscription add 47.76ns 49.1902 0.97 80.51ns
composite_subscription unsubscribe 44.16ns 44.138 1.00 23.41ns

buffer

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
buffer 247.29ns 267.259 0.93 1823.21ns
sending of values from observable via buffer to subscriber 5.02ns 6.37538 0.79 27.62ns

chains creation test

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
long non-state chain creation + subscribe 255.76ns 270.411 0.95 497.98ns
long stateful chain creation + subscribe 375.84ns 396.416 0.95 803.91ns

combine_latest

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
combine_latest construction from observable via dot + subscribe 858.92ns 889.021 0.97 937.98ns
sending of values from observable via combine_latest to subscriber 27.45ns 27.7859 0.99 2.34ns

concat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
concat 1874.15ns 1884.42 0.99 3257.76ns
concat_with 2166.25ns 2215.2 0.98 3691.18ns

distinct_until_changed

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
distinct_until_changed construction from observable via dot + subscribe 112.64ns 127.813 0.88 245.74ns
sending of values from observable via distinct_until_changed to subscriber 2.68ns 3.00196 0.89 1.34ns

first

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
first construction from observable via dot + subscribe 123.59ns 144.199 0.86 571.68ns
sending of values from observable via first to subscriber 0.67ns 0.67109 1.00 0.67ns

foundamental sources

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
empty 63.76ns 85.247 0.75 622.57ns
error 114.42ns 134.749 0.85 751.34ns
never 28.65ns 47.1267 0.61 269.06ns

from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
from vector with int 79.71ns 98.799 0.81 660.46ns

immediate scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 1.34ns 0.670926 2.00 114.40ns
re-schedule 10 times 11.40ns 9.39752 1.21 142.56ns

just

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
just send int 64.97ns 86.0105 0.76 629.05ns
just send variadic 94.72ns 117.546 0.81 744.89ns

last

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
last construction from observable via dot + subscribe 169.57ns 185.501 0.91 357.64ns
sending of values from observable via last to subscriber 2.14ns 2.39745 0.89 1.67ns

map

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
map construction from observable via dot + subscribe 68.86ns 88.8929 0.77 239.33ns
sending of values from observable via map to subscriber 1.00ns 1.00506 1.00 2.35ns

merge

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
merge 1812.97ns 1832.69 0.99 3277.06ns
merge_with 2114.18ns 2149.48 0.98 3581.73ns

observe_on

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
observe_on construction from observable via dot + subscribe 424.79ns 460.47 0.92 2664.80ns
sending of values from observable via observe_on to subscriber 60.15ns 60.5737 0.99 199.07ns

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 421.99ns 440.576 0.96 533.08ns

publish_subject callbacks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
on_next 24.09ns 24.0893 1.00 10.50ns
on_error 0.67ns 0.505179 1.33 19.19ns
on_completed 0.67ns 0.50563 1.33 0.67ns

publish_subject routines

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
construct 196.22ns 200.227 0.98 177.74ns
get_observable 26.47ns 29.077 0.91 49.71ns
get_subscriber 58.13ns 60.5635 0.96 13.39ns

repeat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
repeat construction from observable via dot + subscribe 3932.82ns 3939.84 1.00 3045.55ns

scan

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
scan construction from observable via dot + subscribe 99.66ns 125.112 0.80 296.44ns
sending of values from observable via scan to subscriber 1.67ns 1.6758 1.00 2.34ns

single-threaded locks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no-lock increment 2.02ns 2.02476 1.00 .
mutex lock increment 18.08ns 18.0586 1.00 .
spin-lock increment 9.03ns 9.03862 1.00 .

skip

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
skip construction from observable via dot + subscribe 98.83ns 118.63 0.83 491.33ns
sending of values from observable via skip to subscriber 1.68ns 1.67627 1.00 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 2197.46ns 2218.91 0.99 2804.38ns
sending of values from observable via switch_on_next to subscriber 569.24ns 573.353 0.99 646.14ns

take

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take construction from observable via dot + subscribe 169.91ns 184.526 0.92 488.63ns
sending of values from observable via take to subscriber 2.35ns 2.34971 1.00 2.69ns

take_last

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take_last construction from observable via dot + subscribe 212.08ns 229.19 0.93 524.76ns
sending of values from observable via take_last to subscriber 3.15ns 2.93383 1.07 3.50ns

take_until

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take_until construction from observable via dot + subscribe 1029.88ns 1052.13 0.98 1170.98ns
sending of values from observable via take_until to subscriber 9.04ns 9.02751 1.00 1.78ns

trampoline scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 12.00ns 11.6761 1.03 162.04ns
re-schedule 10 times 32.51ns 30.6571 1.06 193.00ns
recursively schedule 10 times 1366.48ns 1378.29 0.99 5442.11ns

window

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
window 2000.17ns 2025.58 0.99 3128.26ns
sending of values from observable via window to subscriber 545.26ns 548.34 0.99 368.07ns

with_latest_from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
with_latest_from construction from observable via dot + subscribe 1021.37ns 1040.52 0.98 1113.87ns
sending of values from observable via with_latest_from to subscriber 26.78ns 26.7775 1.00 3.02ns

ci-ubuntu-gcc

Observable construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable construction 0.38ns 0.382346 0.98 0.37ns
Dynamic observable construction 33.39ns 38.4321 0.87 28.40ns
Specific observable construction + as_dynamic 33.05ns 35.2104 0.94 25.82ns

Observable lift

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable lift specific observer 116.93ns 142.846 0.82 400.28ns
Specific observable lift dynamic observer 140.56ns 174.014 0.81 416.87ns
Dynamic observable lift specific observer 211.89ns 239.815 0.88 461.52ns
Dynamic observable lift dynamic observer 219.60ns 249.569 0.88 419.01ns

Observable subscribe

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe specific observer 65.94ns 98.0637 0.67 381.16ns
Specific observable subscribe dynamic observer 88.00ns 107.752 0.82 387.99ns
Dynamic observable subscribe specific observer 206.26ns 180.151 1.14 424.25ns
Dynamic observable subscribe dynamic observer 137.38ns 174.49 0.79 426.41ns

Observable subscribe #2

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe lambda 70.54ns 99.7699 0.71 377.60ns
Dynamic observable subscribe lambda 145.55ns 181.242 0.80 440.65ns
Specific observable subscribe lambda without subscription 86.52ns 98.84 0.88 382.71ns
Dynamic observable subscribe lambda without subscription 150.86ns 177.841 0.85 433.36ns
Specific observable subscribe specific subscriber 38.08ns 59.3944 0.64 321.54ns
Dynamic observable subscribe specific subscriber 158.30ns 132.109 1.20 363.05ns
Specific observable subscribe dynamic observer 34.70ns 58.9303 0.59 322.45ns
Dynamic observable subscribe dynamic observer 101.27ns 121.252 0.84 351.23ns

Observer construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer construction 0.37ns 0.381471 0.98 0.38ns
Dynamic observer construction 32.78ns 37.2243 0.88 25.10ns
Specific observer construction + as_dynamic 32.85ns 37.8645 0.87 23.19ns

OnNext

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer OnNext 0.38ns 0.395245 0.95 0.38ns
Dynamic observer OnNext 2.26ns 2.44884 0.92 2.35ns

Subscriber construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Make subsriber 39.03ns 41.7849 0.93 65.47ns
Make copy of subscriber 18.84ns 20.3872 0.92 5.53ns
Transform subsriber to dynamic 49.68ns 50.5875 0.98 27.57ns

Subscription

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
composite_subscription create 39.25ns 41.4049 0.95 93.35ns
composite_subscription add 57.13ns 55.0295 1.04 96.78ns
composite_subscription unsubscribe 47.82ns 50.2379 0.95 25.00ns

buffer

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
buffer 254.16ns 311.413 0.82 2320.19ns
sending of values from observable via buffer to subscriber 7.66ns 7.50186 1.02 33.99ns

chains creation test

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
long non-state chain creation + subscribe 344.82ns 336.141 1.03 804.86ns
long stateful chain creation + subscribe 574.86ns 511.669 1.12 1961.86ns

combine_latest

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
combine_latest construction from observable via dot + subscribe 1056.87ns 1115.69 0.95 1309.88ns
sending of values from observable via combine_latest to subscriber 36.75ns 31.4017 1.17 1.88ns

concat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
concat 2194.78ns 2290.2 0.96 8284.40ns
concat_with 2694.75ns 2613.87 1.03 4630.09ns

distinct_until_changed

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
distinct_until_changed construction from observable via dot + subscribe 130.86ns 162.188 0.81 409.56ns
sending of values from observable via distinct_until_changed to subscriber 2.94ns 4.42377 0.67 1.37ns

first

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
first construction from observable via dot + subscribe 169.57ns 192.929 0.88 858.80ns
sending of values from observable via first to subscriber 0.75ns 0.773254 0.97 0.58ns

foundamental sources

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
empty 79.06ns 102.864 0.77 899.48ns
error 135.66ns 156.771 0.87 999.66ns
never 36.92ns 59.7688 0.62 330.05ns

from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
from vector with int 99.33ns 125.295 0.79 909.93ns

immediate scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 0.88ns 1.9317 0.46 143.50ns
re-schedule 10 times 22.14ns 27.1474 0.82 176.44ns

just

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
just send int 81.74ns 103.416 0.79 903.54ns
just send variadic 122.80ns 156.958 0.78 1153.27ns

last

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
last construction from observable via dot + subscribe 207.82ns 229.884 0.90 503.04ns
sending of values from observable via last to subscriber 3.56ns 3.21864 1.11 1.51ns

map

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
map construction from observable via dot + subscribe 96.54ns 120.331 0.80 417.67ns
sending of values from observable via map to subscriber 0.87ns 0.90181 0.97 1.90ns

merge

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
merge 2141.98ns 2087.37 1.03 4634.51ns
merge_with 2551.72ns 2493.36 1.02 4939.52ns

observe_on

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
observe_on construction from observable via dot + subscribe 552.88ns 579.353 0.95 3088.24ns
sending of values from observable via observe_on to subscriber 79.81ns 81.6426 0.98 284.82ns

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 522.58ns 515.541 1.01 758.25ns

publish_subject callbacks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
on_next 28.62ns 26.1407 1.09 12.10ns
on_error 0.82ns 1.10092 0.75 20.44ns
on_completed 0.75ns 0.79049 0.95 0.78ns

publish_subject routines

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
construct 231.76ns 243.185 0.95 194.46ns
get_observable 31.18ns 34.3206 0.91 52.95ns
get_subscriber 68.55ns 64.0686 1.07 26.07ns

repeat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
repeat construction from observable via dot + subscribe 4893.82ns 4850.08 1.01 3545.40ns

scan

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
scan construction from observable via dot + subscribe 133.60ns 162.025 0.82 465.97ns
sending of values from observable via scan to subscriber 2.29ns 3.34374 0.68 1.86ns

single-threaded locks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no-lock increment 2.54ns 2.30061 1.10 .
mutex lock increment 29.48ns 21.7135 1.36 .
spin-lock increment 13.02ns 11.0349 1.18 .

skip

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
skip construction from observable via dot + subscribe 131.32ns 153.467 0.86 719.43ns
sending of values from observable via skip to subscriber 3.04ns 3.60292 0.84 2.24ns

switch_on_next

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
switch_on_next construction from observable via dot + subscribe 2858.79ns 2783.69 1.03 5210.27ns
sending of values from observable via switch_on_next to subscriber 660.38ns 682.928 0.97 1503.79ns

take

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take construction from observable via dot + subscribe 196.07ns 222.136 0.88 692.08ns
sending of values from observable via take to subscriber 4.54ns 4.36798 1.04 3.74ns

take_last

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take_last construction from observable via dot + subscribe 244.58ns 277.777 0.88 1237.63ns
sending of values from observable via take_last to subscriber 3.59ns 4.08211 0.88 7.79ns

take_until

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take_until construction from observable via dot + subscribe 1266.22ns 1249.18 1.01 1802.78ns
sending of values from observable via take_until to subscriber 11.32ns 10.882 1.04 2.14ns

trampoline scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 25.70ns 24.4696 1.05 208.55ns
re-schedule 10 times 58.65ns 55.813 1.05 242.54ns
recursively schedule 10 times 1696.08ns 1700.63 1.00 7103.53ns

window

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
window 2459.84ns 2525.69 0.97 3856.45ns
sending of values from observable via window to subscriber 796.10ns 696.004 1.14 488.06ns

with_latest_from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
with_latest_from construction from observable via dot + subscribe 1289.64ns 1320.54 0.98 1693.78ns
sending of values from observable via with_latest_from to subscriber 33.03ns 31.2806 1.06 4.35ns

ci-windows

Observable construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable construction 1.50ns 1.70211 0.88 0.67ns
Dynamic observable construction 80.21ns 97.2122 0.83 122.64ns
Specific observable construction + as_dynamic 79.97ns 97.2986 0.82 122.02ns

Observable lift

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable lift specific observer 146.78ns 203.857 0.72 1213.27ns
Specific observable lift dynamic observer 178.19ns 280.098 0.64 1262.90ns
Dynamic observable lift specific observer 284.26ns 314.57 0.90 1399.42ns
Dynamic observable lift dynamic observer 237.44ns 272.667 0.87 1302.35ns

Observable subscribe

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe specific observer 112.04ns 153.628 0.73 1209.50ns
Specific observable subscribe dynamic observer 129.50ns 161.379 0.80 1230.05ns
Dynamic observable subscribe specific observer 226.85ns 297.387 0.76 1350.16ns
Dynamic observable subscribe dynamic observer 178.22ns 238.432 0.75 1239.90ns

Observable subscribe #2

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe lambda 110.83ns 160.734 0.69 1168.86ns
Dynamic observable subscribe lambda 227.35ns 283.0 0.80 1343.00ns
Specific observable subscribe lambda without subscription 110.47ns 151.206 0.73 1171.95ns
Dynamic observable subscribe lambda without subscription 227.80ns 324.324 0.70 7208.38ns
Specific observable subscribe specific subscriber 30.43ns 52.2797 0.58 848.60ns
Dynamic observable subscribe specific subscriber 146.22ns 178.917 0.82 1022.36ns
Specific observable subscribe dynamic observer 30.43ns 59.327 0.51 874.21ns
Dynamic observable subscribe dynamic observer 79.04ns 131.991 0.60 937.32ns

Observer construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer construction 1.50ns 1.72817 0.87 1.51ns
Dynamic observer construction 81.56ns 94.495 0.86 111.37ns
Specific observer construction + as_dynamic 81.42ns 103.116 0.79 111.08ns

OnNext

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer OnNext 0.67ns 0.738082 0.91 0.67ns
Dynamic observer OnNext 2.01ns 2.32495 0.86 2.34ns

Subscriber construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Make subsriber 84.04ns 92.9701 0.90 368.58ns
Make copy of subscriber 18.21ns 15.9025 1.15 31.42ns
Transform subsriber to dynamic 95.61ns 106.562 0.90 149.53ns

Subscription

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
composite_subscription create 84.08ns 85.169 0.99 343.31ns
composite_subscription add 69.37ns 94.0565 0.74 160.40ns
composite_subscription unsubscribe 64.85ns 68.9321 0.94 125.08ns

buffer

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
buffer 352.67ns 422.137 0.84 4476.17ns
sending of values from observable via buffer to subscriber 7.10ns 8.70185 0.82 90.94ns

chains creation test

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
long non-state chain creation + subscribe 268.78ns 307.176 0.88 1724.40ns
long stateful chain creation + subscribe 660.76ns 1094.66 0.60 3150.25ns

combine_latest

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
combine_latest construction from observable via dot + subscribe 1595.56ns 2006.93 0.80 2992.38ns
sending of values from observable via combine_latest to subscriber 47.41ns 58.488 0.81 4.54ns

concat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
concat 2748.20ns 3749.9 0.73 10620.70ns
concat_with 3413.88ns 4126.0 0.83 11589.30ns

distinct_until_changed

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
distinct_until_changed construction from observable via dot + subscribe 185.00ns 234.205 0.79 1025.77ns
sending of values from observable via distinct_until_changed to subscriber 3.56ns 3.92765 0.91 6.88ns

first

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
first construction from observable via dot + subscribe 127.67ns 162.866 0.78 2607.22ns
sending of values from observable via first to subscriber 2.35ns 2.69612 0.87 1.80ns

foundamental sources

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
empty 62.93ns 92.8341 0.68 2390.82ns
error 111.89ns 141.885 0.79 2464.80ns
never 30.60ns 58.2652 0.53 882.46ns

from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
from vector with int 135.69ns 181.589 0.75 2658.30ns

immediate scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 1.76ns 1.62313 1.09 410.18ns
re-schedule 10 times 97.75ns 110.028 0.89 435.86ns

just

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
just send int 68.11ns 104.381 0.65 2403.91ns
just send variadic 98.18ns 158.119 0.62 2470.50ns

last

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
last construction from observable via dot + subscribe 223.12ns 302.264 0.74 1428.94ns
sending of values from observable via last to subscriber 3.20ns 4.29545 0.74 3.75ns

map

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
map construction from observable via dot + subscribe 87.74ns 126.658 0.69 988.46ns
sending of values from observable via map to subscriber 4.02ns 4.77517 0.84 7.74ns

merge

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
merge 3355.20ns 3120.8 1.08 10904.70ns
merge_with 3304.12ns 4632.0 0.71 11577.00ns

observe_on

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
observe_on construction from observable via dot + subscribe 620.46ns 632.514 0.98 5621.80ns
sending of values from observable via observe_on to subscriber 63.39ns 62.3002 1.02 844.09ns

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 638.90ns 850.417 0.75 1815.58ns

publish_subject callbacks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
on_next 19.92ns 23.3717 0.85 33.06ns
on_error 2.72ns 3.15333 0.86 18.38ns
on_completed 2.29ns 3.96046 0.58 1.36ns

publish_subject routines

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
construct 357.45ns 426.667 0.84 604.97ns
get_observable 26.40ns 32.413 0.81 163.16ns
get_subscriber 50.21ns 61.2625 0.82 93.96ns

repeat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
repeat construction from observable via dot + subscribe 6062.80ns 7694.0 0.79 11230.00ns

scan

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
scan construction from observable via dot + subscribe 181.82ns 283.276 0.64 1248.05ns
sending of values from observable via scan to subscriber 6.13ns 5.9043 1.04 9.37ns

single-threaded locks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no-lock increment 1.88ns 3.0847 0.61 .
mutex lock increment 25.77ns 25.9649 0.99 .
spin-lock increment 9.05ns 12.9361 0.70 .

skip

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
skip construction from observable via dot + subscribe 176.02ns 365.881 0.48 1561.73ns
sending of values from observable via skip to subscriber 3.51ns 4.20203 0.84 4.06ns

switch_on_next

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
switch_on_next construction from observable via dot + subscribe 4011.12ns 4175.71 0.96 11959.00ns
sending of values from observable via switch_on_next to subscriber 851.19ns 934.69 0.91 3090.00ns

take

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take construction from observable via dot + subscribe 227.28ns 293.313 0.77 2147.00ns
sending of values from observable via take to subscriber 5.80ns 6.67217 0.87 5.58ns

take_last

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take_last construction from observable via dot + subscribe 321.86ns 394.269 0.82 2457.45ns
sending of values from observable via take_last to subscriber 4.23ns 8.41273 0.50 20.52ns

take_until

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take_until construction from observable via dot + subscribe 1710.25ns 2072.4 0.83 5202.20ns
sending of values from observable via take_until to subscriber 11.57ns 26.8661 0.43 6.47ns

trampoline scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 20.28ns 23.5987 0.86 609.79ns
re-schedule 10 times 121.52ns 133.657 0.91 640.90ns
recursively schedule 10 times 2597.00ns 3294.3 0.79 19062.50ns

window

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
window 2927.22ns 5305.33 0.55 9669.00ns
sending of values from observable via window to subscriber 843.58ns 1270.41 0.66 1622.81ns

with_latest_from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
with_latest_from construction from observable via dot + subscribe 1997.00ns 2236.75 0.89 3808.00ns
sending of values from observable via with_latest_from to subscriber 38.10ns 39.0058 0.98 7.29ns

@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 1 Code Smell

0.0% 0.0% Coverage
0.0% 0.0% Duplication

@AlexInLog AlexInLog merged commit feeac6c into main Oct 27, 2022
@AlexInLog AlexInLog deleted the simplify_template branch October 27, 2022 21:10
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