Skip to content

fix dynamic observer/observable#504

Merged
victimsnino merged 4 commits into
v2from
fix_dynamic
Jan 10, 2024
Merged

fix dynamic observer/observable#504
victimsnino merged 4 commits into
v2from
fix_dynamic

Conversation

@victimsnino
Copy link
Copy Markdown
Owner

No description provided.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jan 9, 2024

BENCHMARK RESULTS (AUTOGENERATED)

ci-ubuntu-gcc

General

name rxcpp rpp prev rpp ratio
Subscribe empty callbacks to empty observable 305.60 ns 1.25 ns 1.24 ns 1.01
Subscribe empty callbacks to empty observable via pipe operator 309.16 ns 1.23 ns 1.23 ns 1.00

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 700.62 ns 0.62 ns 0.62 ns 1.00
from array of 1 - create + subscribe + current_thread 1038.01 ns 5.25 ns 4.63 ns 1.13
concat_as_source of just(1 immediate) create + subscribe 2283.74 ns 79.67 ns 79.23 ns 1.01
defer from array of 1 - defer + create + subscribe + immediate 731.18 ns 0.31 ns 0.31 ns 1.00
interval - interval + take(3) + subscribe + immediate 2127.96 ns 57.97 ns 58.02 ns 1.00
interval - interval + take(3) + subscribe + current_thread 3048.25 ns 32.12 ns 32.12 ns 1.00

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 1108.27 ns 0.31 ns 0.31 ns 1.00
immediate_just+filter(true)+subscribe 848.75 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+skip(1)+subscribe 1042.21 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,1,2)+distinct_until_changed()+subscribe 855.93 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+first()+subscribe 1249.87 ns 0.31 ns 0.62 ns 0.50
immediate_just(1,2)+last()+subscribe 930.25 ns 0.31 ns 0.31 ns 1.00
immediate_just+take_last(1)+subscribe 1109.08 ns 18.82 ns 18.53 ns 1.02

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 274.56 ns 1.23 ns 1.24 ns 1.00
current_thread scheduler create worker + schedule 372.13 ns 6.17 ns 5.55 ns 1.11
current_thread scheduler create worker + schedule + recursive schedule 821.29 ns 63.37 ns 67.53 ns 0.94

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 887.70 ns 0.31 ns 0.31 ns 1.00
immediate_just+scan(10, std::plus)+subscribe 887.26 ns 0.31 ns 0.31 ns 1.00
immediate_just+flat_map(immediate_just(v*2))+subscribe 2354.87 ns 96.48 ns 96.80 ns 1.00
immediate_just+buffer(2)+subscribe 1530.65 ns 14.51 ns 14.20 ns 1.02
immediate_just+window(2)+subscribe + subscsribe inner 2423.04 ns 682.97 ns 809.06 ns 0.84

Conditional Operators

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

Utility Operators

name rxcpp rpp prev rpp ratio
immediate_just(1)+subscribe_on(immediate)+subscribe 2040.81 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 3467.88 ns 113.42 ns 113.50 ns 1.00
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 3672.56 ns 106.82 ns 118.89 ns 0.90
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 85.37 ns 100.11 ns 0.85
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 3548.53 ns 463.08 ns 513.39 ns 0.90

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 34.50 ns 22.77 ns 25.14 ns 0.91

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 1372.12 ns 15.43 ns 14.84 ns 1.04
basic sample with immediate scheduler 1414.52 ns 5.55 ns 5.55 ns 1.00

Aggregating Operators

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

ci-macos

General

name rxcpp rpp prev rpp ratio
Subscribe empty callbacks to empty observable 2146.36 ns 6.43 ns 5.34 ns 1.20
Subscribe empty callbacks to empty observable via pipe operator 2045.98 ns 7.04 ns 4.81 ns 1.46

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 3320.85 ns 0.45 ns 0.48 ns 0.94
from array of 1 - create + subscribe + current_thread 3428.01 ns 35.57 ns 38.85 ns 0.92
concat_as_source of just(1 immediate) create + subscribe 7588.62 ns 349.86 ns 449.24 ns 0.78
defer from array of 1 - defer + create + subscribe + immediate 2759.77 ns 0.33 ns 0.31 ns 1.05
interval - interval + take(3) + subscribe + immediate 6859.66 ns 157.30 ns 144.54 ns 1.09
interval - interval + take(3) + subscribe + current_thread 8481.79 ns 148.26 ns 144.35 ns 1.03

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 3996.91 ns 0.33 ns 0.27 ns 1.21
immediate_just+filter(true)+subscribe 3634.59 ns 0.58 ns 0.24 ns 2.45
immediate_just(1,2)+skip(1)+subscribe 3979.61 ns 0.35 ns 0.48 ns 0.73
immediate_just(1,1,2)+distinct_until_changed()+subscribe 3719.50 ns 0.82 ns 0.47 ns 1.74
immediate_just(1,2)+first()+subscribe 5893.59 ns 0.44 ns 0.23 ns 1.89
immediate_just(1,2)+last()+subscribe 3859.30 ns 0.69 ns 0.24 ns 2.91
immediate_just+take_last(1)+subscribe 4612.90 ns 126.59 ns 84.80 ns 1.49

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 1184.76 ns 4.04 ns 5.09 ns 0.80
current_thread scheduler create worker + schedule 1657.69 ns 49.38 ns 49.10 ns 1.01
current_thread scheduler create worker + schedule + recursive schedule 2795.97 ns 301.95 ns 307.28 ns 0.98

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 4058.15 ns 0.33 ns 0.43 ns 0.76
immediate_just+scan(10, std::plus)+subscribe 3521.61 ns 0.75 ns 0.71 ns 1.05
immediate_just+flat_map(immediate_just(v*2))+subscribe 8340.05 ns 689.39 ns 540.62 ns 1.28
immediate_just+buffer(2)+subscribe 4696.43 ns 97.54 ns 128.82 ns 0.76
immediate_just+window(2)+subscribe + subscsribe inner 7642.43 ns 4264.00 ns 2625.55 ns 1.62

Conditional Operators

name rxcpp rpp prev rpp ratio
immediate_just+take_while(false)+subscribe 4179.24 ns - - 0.00
immediate_just+take_while(true)+subscribe 2985.68 ns 0.67 ns 0.56 ns 1.21

Utility Operators

name rxcpp rpp prev rpp ratio
immediate_just(1)+subscribe_on(immediate)+subscribe 7358.38 ns 0.66 ns 0.24 ns 2.81

Combining Operators

name rxcpp rpp prev rpp ratio
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 10610.29 ns 526.62 ns 465.34 ns 1.13
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 11852.26 ns 536.02 ns 565.13 ns 0.95
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 559.29 ns 652.76 ns 0.86
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 16588.19 ns 1990.05 ns 2079.51 ns 0.96

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 124.72 ns 138.76 ns 73.95 ns 1.88

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 5528.68 ns 145.93 ns 119.32 ns 1.22
basic sample with immediate scheduler 4065.29 ns 23.55 ns 15.46 ns 1.52

Aggregating Operators

name rxcpp rpp prev rpp ratio
immediate_just+reduce(10, std::plus)+subscribe 4065.19 ns 0.67 ns 0.24 ns 2.83

ci-ubuntu-clang

General

name rxcpp rpp prev rpp ratio
Subscribe empty callbacks to empty observable 270.73 ns 0.88 ns 0.88 ns 1.00
Subscribe empty callbacks to empty observable via pipe operator 265.92 ns 0.88 ns 0.88 ns 1.00

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 567.27 ns 0.31 ns 0.31 ns 1.00
from array of 1 - create + subscribe + current_thread 788.96 ns 5.55 ns 5.55 ns 1.00
concat_as_source of just(1 immediate) create + subscribe 1885.59 ns 72.23 ns 73.30 ns 0.99
defer from array of 1 - defer + create + subscribe + immediate 575.45 ns 0.31 ns 0.31 ns 1.00
interval - interval + take(3) + subscribe + immediate 1503.05 ns 57.21 ns 57.09 ns 1.00
interval - interval + take(3) + subscribe + current_thread 2087.11 ns 30.83 ns 30.83 ns 1.00

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 918.78 ns 0.31 ns 0.31 ns 1.00
immediate_just+filter(true)+subscribe 637.54 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+skip(1)+subscribe 855.78 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,1,2)+distinct_until_changed()+subscribe 677.74 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+first()+subscribe 1057.44 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+last()+subscribe 755.77 ns 0.31 ns 0.31 ns 1.00
immediate_just+take_last(1)+subscribe 969.36 ns 0.31 ns 0.31 ns 1.00

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 198.32 ns 0.88 ns 0.88 ns 1.00
current_thread scheduler create worker + schedule 304.84 ns 5.56 ns 5.56 ns 1.00
current_thread scheduler create worker + schedule + recursive schedule 619.38 ns 58.20 ns 58.38 ns 1.00

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 668.72 ns 0.31 ns 0.31 ns 1.00
immediate_just+scan(10, std::plus)+subscribe 727.83 ns 0.31 ns 0.31 ns 1.00
immediate_just+flat_map(immediate_just(v*2))+subscribe 1779.57 ns 76.34 ns 78.01 ns 0.98
immediate_just+buffer(2)+subscribe 1393.54 ns 14.19 ns 13.88 ns 1.02
immediate_just+window(2)+subscribe + subscsribe inner 2153.11 ns 579.53 ns 585.07 ns 0.99

Conditional Operators

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

Utility Operators

name rxcpp rpp prev rpp ratio
immediate_just(1)+subscribe_on(immediate)+subscribe 1560.19 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 2528.14 ns 86.60 ns 87.72 ns 0.99
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 2976.17 ns 92.96 ns 96.26 ns 0.97
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 78.98 ns 83.61 ns 0.94
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 2610.25 ns 548.67 ns 545.11 ns 1.01

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 26.15 ns 24.36 ns 24.40 ns 1.00

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 1039.52 ns 13.57 ns 13.57 ns 1.00
basic sample with immediate scheduler 1061.57 ns 6.17 ns 6.17 ns 1.00

Aggregating Operators

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

ci-windows

General

name rxcpp rpp prev rpp ratio
Subscribe empty callbacks to empty observable 567.71 ns 3.09 ns 3.09 ns 1.00
Subscribe empty callbacks to empty observable via pipe operator 582.78 ns 3.09 ns 3.09 ns 1.00

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 1157.83 ns 4.93 ns 4.93 ns 1.00
from array of 1 - create + subscribe + current_thread 1424.76 ns 20.37 ns 19.76 ns 1.03
concat_as_source of just(1 immediate) create + subscribe 4697.14 ns 154.97 ns 154.56 ns 1.00
defer from array of 1 - defer + create + subscribe + immediate 1207.84 ns 4.93 ns 4.93 ns 1.00
interval - interval + take(3) + subscribe + immediate 3142.64 ns 131.01 ns 130.88 ns 1.00
interval - interval + take(3) + subscribe + current_thread 3449.24 ns 60.49 ns 60.45 ns 1.00

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 1832.34 ns 12.82 ns 12.85 ns 1.00
immediate_just+filter(true)+subscribe 1368.81 ns 12.33 ns 12.33 ns 1.00
immediate_just(1,2)+skip(1)+subscribe 1754.36 ns 13.08 ns 13.06 ns 1.00
immediate_just(1,1,2)+distinct_until_changed()+subscribe 1351.98 ns 15.94 ns 15.93 ns 1.00
immediate_just(1,2)+first()+subscribe 2401.40 ns 13.00 ns 12.95 ns 1.00
immediate_just(1,2)+last()+subscribe 1489.21 ns 14.13 ns 14.05 ns 1.01
immediate_just+take_last(1)+subscribe 2051.27 ns 59.03 ns 60.51 ns 0.98

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 489.01 ns 4.94 ns 4.94 ns 1.00
current_thread scheduler create worker + schedule 673.15 ns 16.97 ns 17.89 ns 0.95
current_thread scheduler create worker + schedule + recursive schedule 1094.91 ns 105.05 ns 104.11 ns 1.01

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 1334.66 ns 12.33 ns 12.34 ns 1.00
immediate_just+scan(10, std::plus)+subscribe 1455.98 ns 21.29 ns 21.27 ns 1.00
immediate_just+flat_map(immediate_just(v*2))+subscribe 3543.92 ns 200.57 ns 208.32 ns 0.96
immediate_just+buffer(2)+subscribe 2617.59 ns 62.17 ns 62.76 ns 0.99
immediate_just+window(2)+subscribe + subscsribe inner 4084.64 ns 1114.22 ns 1083.14 ns 1.03

Conditional Operators

name rxcpp rpp prev rpp ratio
immediate_just+take_while(false)+subscribe 1604.94 ns 11.45 ns 11.46 ns 1.00
immediate_just+take_while(true)+subscribe 1376.71 ns 12.32 ns 12.81 ns 0.96

Utility Operators

name rxcpp rpp prev rpp ratio
immediate_just(1)+subscribe_on(immediate)+subscribe 3506.05 ns 7.71 ns 7.71 ns 1.00

Combining Operators

name rxcpp rpp prev rpp ratio
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 5439.68 ns 244.42 ns 242.74 ns 1.01
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 6398.32 ns 210.20 ns 216.70 ns 0.97
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 219.11 ns 219.83 ns 1.00
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 6147.31 ns 747.84 ns 742.59 ns 1.01

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 36.37 ns 36.10 ns 36.10 ns 1.00

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 1897.72 ns 59.25 ns 59.90 ns 0.99
basic sample with immediate scheduler 1909.12 ns 35.18 ns 36.72 ns 0.96

Aggregating Operators

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

@codecov
Copy link
Copy Markdown

codecov Bot commented Jan 9, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Comparison is base (94b43fc) 95.57% compared to head (ea30a48) 95.57%.

Additional details and impacted files
@@           Coverage Diff           @@
##               v2     #504   +/-   ##
=======================================
  Coverage   95.57%   95.57%           
=======================================
  Files          77       77           
  Lines        1919     1922    +3     
=======================================
+ Hits         1834     1837    +3     
  Misses         85       85           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@sonarqubecloud
Copy link
Copy Markdown

sonarqubecloud Bot commented Jan 9, 2024

Quality Gate Passed Quality Gate passed

The SonarCloud Quality Gate passed, but some issues were introduced.

1 New issue
0 Security Hotspots
100.0% Coverage on New Code
0.0% Duplication on New Code

See analysis details on SonarCloud

@victimsnino victimsnino marked this pull request as ready for review January 10, 2024 21:33
@victimsnino victimsnino merged commit d34891c into v2 Jan 10, 2024
@victimsnino victimsnino deleted the fix_dynamic branch January 10, 2024 21:33
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