Skip to content

extend hooks a bit#557

Merged
AlexInLog merged 6 commits into
v2from
extend_hooks
Apr 10, 2024
Merged

extend hooks a bit#557
AlexInLog merged 6 commits into
v2from
extend_hooks

Conversation

@AlexInLog

Copy link
Copy Markdown
Owner

No description provided.

@github-actions

github-actions Bot commented Apr 10, 2024

Copy link
Copy Markdown
Contributor

BENCHMARK RESULTS (AUTOGENERATED)

ci-ubuntu-gcc

General

name rxcpp rpp prev rpp ratio
Subscribe empty callbacks to empty observable 308.50 ns 2.16 ns 2.17 ns 1.00
Subscribe empty callbacks to empty observable via pipe operator 304.33 ns 2.16 ns 2.16 ns 1.00

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 686.26 ns 0.31 ns 0.31 ns 1.00
from array of 1 - create + subscribe + current_thread 1011.47 ns 5.25 ns 5.25 ns 1.00
concat_as_source of just(1 immediate) create + subscribe 2314.00 ns 124.15 ns 118.66 ns 1.05
defer from array of 1 - defer + create + subscribe + immediate 753.11 ns 0.31 ns 0.31 ns 1.00
interval - interval + take(3) + subscribe + immediate 2402.58 ns 59.23 ns 59.23 ns 1.00
interval - interval + take(3) + subscribe + current_thread 3012.62 ns 32.73 ns 32.73 ns 1.00

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 1082.64 ns 0.31 ns 0.31 ns 1.00
immediate_just+filter(true)+subscribe 831.67 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+skip(1)+subscribe 1084.49 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,1,2)+distinct_until_changed()+subscribe 839.89 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+first()+subscribe 1268.01 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+last()+subscribe 935.11 ns 0.31 ns 0.31 ns 1.00
immediate_just+take_last(1)+subscribe 1104.32 ns 17.91 ns 18.22 ns 0.98

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 270.51 ns 2.16 ns 2.16 ns 1.00
current_thread scheduler create worker + schedule 370.77 ns 6.79 ns 6.79 ns 1.00
current_thread scheduler create worker + schedule + recursive schedule 856.98 ns 63.79 ns 63.61 ns 1.00

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 843.93 ns 0.31 ns 0.31 ns 1.00
immediate_just+scan(10, std::plus)+subscribe 889.77 ns 0.31 ns 0.31 ns 1.00
immediate_just+flat_map(immediate_just(v*2))+subscribe 2333.48 ns 194.50 ns 160.37 ns 1.21
immediate_just+buffer(2)+subscribe 1561.42 ns 14.22 ns 14.21 ns 1.00
immediate_just+window(2)+subscribe + subscsribe inner 2393.00 ns 1141.44 ns 1101.70 ns 1.04

Conditional Operators

name rxcpp rpp prev rpp ratio
immediate_just+take_while(false)+subscribe 817.51 ns - - 0.00
immediate_just+take_while(true)+subscribe 821.05 ns 0.31 ns 0.31 ns 1.00

Utility Operators

name rxcpp rpp prev rpp ratio
immediate_just(1)+subscribe_on(immediate)+subscribe 1993.35 ns 0.31 ns 0.31 ns 1.00

Combining Operators

name rxcpp rpp prev rpp ratio
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 3449.71 ns 211.14 ns 179.60 ns 1.18
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 3626.90 ns 190.96 ns 170.34 ns 1.12
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 176.43 ns 139.07 ns 1.27
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 3615.64 ns 950.93 ns 948.38 ns 1.00
immediate_just(1) + zip(immediate_just(2)) + subscribe 2140.24 ns 240.79 ns 230.22 ns 1.05

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 34.59 ns 12.34 ns 11.72 ns 1.05

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 1322.33 ns 15.44 ns 15.44 ns 1.00
basic sample with immediate scheduler 1379.38 ns 5.56 ns 5.55 ns 1.00

Aggregating Operators

name rxcpp rpp prev rpp ratio
immediate_just+reduce(10, std::plus)+subscribe 898.42 ns 0.31 ns 0.31 ns 1.00

Error Handling Operators

name rxcpp rpp prev rpp ratio
create(on_next(1), on_error())+on_error_resume_next(immediate_just(2)))+subscribe 1063.58 ns 121.62 ns 121.25 ns 1.00

ci-macos

General

name rxcpp rpp prev rpp ratio
Subscribe empty callbacks to empty observable 1444.61 ns 8.05 ns 5.03 ns 1.60
Subscribe empty callbacks to empty observable via pipe operator 1744.55 ns 6.44 ns 5.17 ns 1.24

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 2606.68 ns 0.60 ns 0.29 ns 2.08
from array of 1 - create + subscribe + current_thread 4414.76 ns 37.42 ns 31.19 ns 1.20
concat_as_source of just(1 immediate) create + subscribe 7116.08 ns 645.94 ns 391.54 ns 1.65
defer from array of 1 - defer + create + subscribe + immediate 3527.34 ns 0.30 ns 0.27 ns 1.12
interval - interval + take(3) + subscribe + immediate 6682.89 ns 187.25 ns 132.25 ns 1.42
interval - interval + take(3) + subscribe + current_thread 7946.87 ns 143.07 ns 109.65 ns 1.30

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 3745.38 ns 0.30 ns 0.25 ns 1.21
immediate_just+filter(true)+subscribe 2963.55 ns 0.39 ns 0.25 ns 1.56
immediate_just(1,2)+skip(1)+subscribe 4673.64 ns 0.29 ns 0.27 ns 1.08
immediate_just(1,1,2)+distinct_until_changed()+subscribe 2595.28 ns 0.59 ns 0.53 ns 1.13
immediate_just(1,2)+first()+subscribe 4401.24 ns 0.31 ns 0.25 ns 1.24
immediate_just(1,2)+last()+subscribe 2987.50 ns 0.30 ns 0.25 ns 1.18
immediate_just+take_last(1)+subscribe 4312.65 ns 149.99 ns 80.83 ns 1.86

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 1080.50 ns 5.26 ns 4.14 ns 1.27
current_thread scheduler create worker + schedule 1538.63 ns 47.66 ns 38.61 ns 1.23
current_thread scheduler create worker + schedule + recursive schedule 3764.56 ns 275.48 ns 221.70 ns 1.24

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 2708.94 ns 0.32 ns 0.23 ns 1.36
immediate_just+scan(10, std::plus)+subscribe 4294.09 ns 0.61 ns 0.49 ns 1.26
immediate_just+flat_map(immediate_just(v*2))+subscribe 7178.53 ns 524.22 ns 422.04 ns 1.24
immediate_just+buffer(2)+subscribe 3258.88 ns 162.59 ns 73.88 ns 2.20
immediate_just+window(2)+subscribe + subscsribe inner 10202.67 ns 2954.17 ns 2372.73 ns 1.25

Conditional Operators

name rxcpp rpp prev rpp ratio
immediate_just+take_while(false)+subscribe 2972.96 ns - - 0.00
immediate_just+take_while(true)+subscribe 2878.23 ns 0.31 ns 0.24 ns 1.28

Utility Operators

name rxcpp rpp prev rpp ratio
immediate_just(1)+subscribe_on(immediate)+subscribe 6513.80 ns 0.29 ns 0.23 ns 1.23

Combining Operators

name rxcpp rpp prev rpp ratio
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 9292.32 ns 577.96 ns 467.85 ns 1.24
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 12061.83 ns 762.66 ns 471.69 ns 1.62
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 646.42 ns 474.76 ns 1.36
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 14258.45 ns 3397.00 ns 1903.32 ns 1.78
immediate_just(1) + zip(immediate_just(2)) + subscribe 9647.36 ns 1721.80 ns 866.85 ns 1.99

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 111.95 ns 70.69 ns 50.98 ns 1.39

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 3641.10 ns 143.70 ns 117.84 ns 1.22
basic sample with immediate scheduler 3456.88 ns 18.87 ns 14.85 ns 1.27

Aggregating Operators

name rxcpp rpp prev rpp ratio
immediate_just+reduce(10, std::plus)+subscribe 3160.12 ns 0.31 ns 0.23 ns 1.30

Error Handling Operators

name rxcpp rpp prev rpp ratio
create(on_next(1), on_error())+on_error_resume_next(immediate_just(2)))+subscribe 9635.97 ns 5304.08 ns 4248.68 ns 1.25

ci-ubuntu-clang

General

name rxcpp rpp prev rpp ratio
Subscribe empty callbacks to empty observable 276.61 ns 0.88 ns 0.89 ns 0.98
Subscribe empty callbacks to empty observable via pipe operator 284.49 ns 0.88 ns 0.88 ns 1.00

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 563.62 ns 0.41 ns 0.31 ns 1.34
from array of 1 - create + subscribe + current_thread 791.92 ns 5.55 ns 5.55 ns 1.00
concat_as_source of just(1 immediate) create + subscribe 1883.06 ns 113.36 ns 113.70 ns 1.00
defer from array of 1 - defer + create + subscribe + immediate 591.41 ns 0.31 ns 0.31 ns 1.00
interval - interval + take(3) + subscribe + immediate 1552.88 ns 58.27 ns 58.30 ns 1.00
interval - interval + take(3) + subscribe + current_thread 2089.42 ns 31.47 ns 31.50 ns 1.00

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 972.09 ns 0.31 ns 0.31 ns 1.00
immediate_just+filter(true)+subscribe 667.43 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+skip(1)+subscribe 862.36 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,1,2)+distinct_until_changed()+subscribe 701.15 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+first()+subscribe 1110.04 ns 0.31 ns 0.31 ns 0.98
immediate_just(1,2)+last()+subscribe 770.90 ns 0.31 ns 0.31 ns 1.00
immediate_just+take_last(1)+subscribe 961.32 ns 0.31 ns 0.31 ns 1.00

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 204.68 ns 0.88 ns 0.88 ns 1.00
current_thread scheduler create worker + schedule 308.02 ns 5.89 ns 5.60 ns 1.05
current_thread scheduler create worker + schedule + recursive schedule 621.84 ns 59.10 ns 60.48 ns 0.98

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 654.55 ns 0.31 ns 0.31 ns 1.00
immediate_just+scan(10, std::plus)+subscribe 715.43 ns 0.31 ns 0.31 ns 1.00
immediate_just+flat_map(immediate_just(v*2))+subscribe 1840.27 ns 120.36 ns 119.45 ns 1.01
immediate_just+buffer(2)+subscribe 1374.02 ns 14.50 ns 14.50 ns 1.00
immediate_just+window(2)+subscribe + subscsribe inner 2393.43 ns 797.38 ns 797.72 ns 1.00

Conditional Operators

name rxcpp rpp prev rpp ratio
immediate_just+take_while(false)+subscribe 655.05 ns - - 0.00
immediate_just+take_while(true)+subscribe 663.15 ns 0.31 ns 0.31 ns 1.00

Utility Operators

name rxcpp rpp prev rpp ratio
immediate_just(1)+subscribe_on(immediate)+subscribe 1584.02 ns 0.31 ns 0.31 ns 1.00

Combining Operators

name rxcpp rpp prev rpp ratio
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 2547.12 ns 126.16 ns 126.16 ns 1.00
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 2960.68 ns 121.51 ns 121.54 ns 1.00
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 110.80 ns 110.44 ns 1.00
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 2657.55 ns 725.73 ns 735.98 ns 0.99
immediate_just(1) + zip(immediate_just(2)) + subscribe 1748.90 ns 169.60 ns 172.68 ns 0.98

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 26.25 ns 13.87 ns 13.88 ns 1.00

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 1060.57 ns 13.27 ns 13.28 ns 1.00
basic sample with immediate scheduler 1024.72 ns 6.18 ns 6.17 ns 1.00

Aggregating Operators

name rxcpp rpp prev rpp ratio
immediate_just+reduce(10, std::plus)+subscribe 738.19 ns 0.31 ns 0.31 ns 1.00

Error Handling Operators

name rxcpp rpp prev rpp ratio
create(on_next(1), on_error())+on_error_resume_next(immediate_just(2)))+subscribe 893.35 ns 125.87 ns 127.19 ns 0.99

ci-windows

General

name rxcpp rpp prev rpp ratio
Subscribe empty callbacks to empty observable 585.32 ns 4.94 ns 4.02 ns 1.23
Subscribe empty callbacks to empty observable via pipe operator 592.66 ns 4.94 ns 4.02 ns 1.23

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 1174.97 ns 5.24 ns 5.24 ns 1.00
from array of 1 - create + subscribe + current_thread 1440.23 ns 18.54 ns 19.81 ns 0.94
concat_as_source of just(1 immediate) create + subscribe 4686.16 ns 170.75 ns 170.42 ns 1.00
defer from array of 1 - defer + create + subscribe + immediate 1218.29 ns 5.24 ns 5.24 ns 1.00
interval - interval + take(3) + subscribe + immediate 3019.17 ns 133.66 ns 140.44 ns 0.95
interval - interval + take(3) + subscribe + current_thread 3441.45 ns 58.62 ns 59.62 ns 0.98

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 1851.58 ns 12.87 ns 12.87 ns 1.00
immediate_just+filter(true)+subscribe 1694.38 ns 11.69 ns 12.37 ns 0.95
immediate_just(1,2)+skip(1)+subscribe 1774.65 ns 13.13 ns 13.03 ns 1.01
immediate_just(1,1,2)+distinct_until_changed()+subscribe 1380.37 ns 15.77 ns 15.95 ns 0.99
immediate_just(1,2)+first()+subscribe 2098.36 ns 12.96 ns 12.64 ns 1.03
immediate_just(1,2)+last()+subscribe 1507.48 ns 14.17 ns 14.12 ns 1.00
immediate_just+take_last(1)+subscribe 2316.17 ns 59.04 ns 59.54 ns 0.99

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 489.97 ns 6.17 ns 6.17 ns 1.00
current_thread scheduler create worker + schedule 674.84 ns 18.22 ns 17.13 ns 1.06
current_thread scheduler create worker + schedule + recursive schedule 1105.34 ns 110.93 ns 111.13 ns 1.00

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 1336.09 ns 11.25 ns 12.33 ns 0.91
immediate_just+scan(10, std::plus)+subscribe 1453.41 ns 21.59 ns 21.29 ns 1.01
immediate_just+flat_map(immediate_just(v*2))+subscribe 3903.10 ns 223.42 ns 231.10 ns 0.97
immediate_just+buffer(2)+subscribe 2331.59 ns 59.61 ns 58.95 ns 1.01
immediate_just+window(2)+subscribe + subscsribe inner 4101.78 ns 1558.72 ns 1555.47 ns 1.00

Conditional Operators

name rxcpp rpp prev rpp ratio
immediate_just+take_while(false)+subscribe 1333.77 ns 11.44 ns 11.45 ns 1.00
immediate_just+take_while(true)+subscribe 1361.35 ns 11.71 ns 12.38 ns 0.95

Utility Operators

name rxcpp rpp prev rpp ratio
immediate_just(1)+subscribe_on(immediate)+subscribe 3827.83 ns 7.40 ns 7.40 ns 1.00

Combining Operators

name rxcpp rpp prev rpp ratio
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 5517.95 ns 244.20 ns 267.53 ns 0.91
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 6455.83 ns 244.11 ns 244.84 ns 1.00
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 240.66 ns 237.44 ns 1.01
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 6300.58 ns 952.49 ns 961.03 ns 0.99
immediate_just(1) + zip(immediate_just(2)) + subscribe 3927.86 ns 549.38 ns 537.47 ns 1.02

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 36.45 ns 27.75 ns 27.76 ns 1.00

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 1880.98 ns 59.29 ns 58.99 ns 1.01
basic sample with immediate scheduler 1893.95 ns 37.03 ns 37.06 ns 1.00

Aggregating Operators

name rxcpp rpp prev rpp ratio
immediate_just+reduce(10, std::plus)+subscribe 1504.66 ns 19.98 ns 17.83 ns 1.12

Error Handling Operators

name rxcpp rpp prev rpp ratio
create(on_next(1), on_error())+on_error_resume_next(immediate_just(2)))+subscribe 1951.09 ns 338.62 ns 340.57 ns 0.99

@AlexInLog AlexInLog marked this pull request as ready for review April 10, 2024 21:00
@AlexInLog AlexInLog merged commit 3cec33b into v2 Apr 10, 2024
@AlexInLog AlexInLog deleted the extend_hooks branch April 10, 2024 21:15
@sonarqubecloud

Copy link
Copy Markdown

Quality Gate Passed Quality Gate passed

Issues
0 New issues
0 Accepted issues

Measures
0 Security Hotspots
No data about Coverage
No data about Duplication

See analysis details on SonarCloud

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