Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix dynamic copy/move #547

Merged
merged 1 commit into from
Mar 26, 2024
Merged

fix dynamic copy/move #547

merged 1 commit into from
Mar 26, 2024

Conversation

victimsnino
Copy link
Owner

No description provided.

Copy link
Contributor

BENCHMARK RESULTS (AUTOGENERATED)

ci-ubuntu-gcc

General

name rxcpp rpp prev rpp ratio
Subscribe empty callbacks to empty observable 300.57 ns 2.16 ns 2.16 ns 1.00
Subscribe empty callbacks to empty observable via pipe operator 302.36 ns 2.16 ns 2.16 ns 1.00

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 702.83 ns 0.31 ns 0.31 ns 1.00
from array of 1 - create + subscribe + current_thread 1043.76 ns 5.25 ns 5.25 ns 1.00
concat_as_source of just(1 immediate) create + subscribe 2228.81 ns 121.35 ns 111.26 ns 1.09
defer from array of 1 - defer + create + subscribe + immediate 767.45 ns 0.31 ns 0.31 ns 1.00
interval - interval + take(3) + subscribe + immediate 2186.97 ns 59.47 ns 59.19 ns 1.00
interval - interval + take(3) + subscribe + current_thread 3128.63 ns 32.74 ns 32.73 ns 1.00

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 1265.19 ns 0.31 ns 0.31 ns 1.00
immediate_just+filter(true)+subscribe 841.87 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+skip(1)+subscribe 991.59 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,1,2)+distinct_until_changed()+subscribe 883.83 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+first()+subscribe 1235.32 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+last()+subscribe 907.32 ns 0.31 ns 0.31 ns 1.00
immediate_just+take_last(1)+subscribe 1098.13 ns 18.20 ns 18.52 ns 0.98

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 279.87 ns 2.16 ns 2.16 ns 1.00
current_thread scheduler create worker + schedule 369.93 ns 7.11 ns 7.10 ns 1.00
current_thread scheduler create worker + schedule + recursive schedule 884.63 ns 69.53 ns 64.30 ns 1.08

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 855.81 ns 0.31 ns 0.31 ns 1.00
immediate_just+scan(10, std::plus)+subscribe 906.59 ns 0.31 ns 0.31 ns 1.00
immediate_just+flat_map(immediate_just(v*2))+subscribe 2300.42 ns 161.99 ns 167.92 ns 0.96
immediate_just+buffer(2)+subscribe 1541.51 ns 13.89 ns 14.51 ns 0.96
immediate_just+window(2)+subscribe + subscsribe inner 2411.90 ns 1123.04 ns 1032.13 ns 1.09

Conditional Operators

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

Utility Operators

name rxcpp rpp prev rpp ratio
immediate_just(1)+subscribe_on(immediate)+subscribe 2023.09 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 3476.01 ns 179.45 ns 218.25 ns 0.82
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 3714.93 ns 163.45 ns 182.77 ns 0.89
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 169.59 ns 153.04 ns 1.11
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 3525.76 ns 1172.42 ns 1135.29 ns 1.03
immediate_just(1) + zip(immediate_just(2)) + subscribe 2085.77 ns 207.36 ns 227.65 ns 0.91

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 34.47 ns 12.02 ns 12.03 ns 1.00

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 1408.95 ns 14.53 ns 14.51 ns 1.00
basic sample with immediate scheduler 1378.69 ns 5.55 ns 5.55 ns 1.00

Aggregating Operators

name rxcpp rpp prev rpp ratio
immediate_just+reduce(10, std::plus)+subscribe 908.23 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 1031.24 ns 132.14 ns 124.45 ns 1.06

ci-macos

General

name rxcpp rpp prev rpp ratio
Subscribe empty callbacks to empty observable 988.84 ns 3.90 ns 5.63 ns 0.69
Subscribe empty callbacks to empty observable via pipe operator 986.87 ns 3.87 ns 5.59 ns 0.69

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 1971.02 ns 0.24 ns 0.44 ns 0.53
from array of 1 - create + subscribe + current_thread 2497.84 ns 25.52 ns 9.97 ns 2.56
concat_as_source of just(1 immediate) create + subscribe 5515.22 ns 329.80 ns 452.58 ns 0.73
defer from array of 1 - defer + create + subscribe + immediate 2008.13 ns 0.23 ns 0.29 ns 0.80
interval - interval + take(3) + subscribe + immediate 4999.85 ns 113.36 ns 108.29 ns 1.05
interval - interval + take(3) + subscribe + current_thread 6193.28 ns 109.16 ns 62.71 ns 1.74

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 2870.07 ns 0.23 ns 0.28 ns 0.83
immediate_just+filter(true)+subscribe 2129.72 ns 0.24 ns 0.31 ns 0.77
immediate_just(1,2)+skip(1)+subscribe 2798.10 ns 0.23 ns 0.33 ns 0.70
immediate_just(1,1,2)+distinct_until_changed()+subscribe 2081.94 ns 0.47 ns 0.69 ns 0.68
immediate_just(1,2)+first()+subscribe 3209.18 ns 0.23 ns 0.32 ns 0.73
immediate_just(1,2)+last()+subscribe 2388.38 ns 0.23 ns 0.30 ns 0.77
immediate_just+take_last(1)+subscribe 3066.94 ns 71.37 ns 77.77 ns 0.92

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 870.68 ns 4.03 ns 7.34 ns 0.55
current_thread scheduler create worker + schedule 1223.90 ns 38.46 ns 17.73 ns 2.17
current_thread scheduler create worker + schedule + recursive schedule 2022.10 ns 221.68 ns 209.92 ns 1.06

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 2124.92 ns 0.23 ns 0.30 ns 0.78
immediate_just+scan(10, std::plus)+subscribe 2337.53 ns 0.47 ns 0.59 ns 0.79
immediate_just+flat_map(immediate_just(v*2))+subscribe 5403.62 ns 414.52 ns 491.62 ns 0.84
immediate_just+buffer(2)+subscribe 2491.83 ns 69.69 ns 69.39 ns 1.00
immediate_just+window(2)+subscribe + subscsribe inner 5309.94 ns 2292.87 ns 2947.25 ns 0.78

Conditional Operators

name rxcpp rpp prev rpp ratio
immediate_just+take_while(false)+subscribe 2114.08 ns - - 0.00
immediate_just+take_while(true)+subscribe 2121.91 ns 0.23 ns 0.29 ns 0.80

Utility Operators

name rxcpp rpp prev rpp ratio
immediate_just(1)+subscribe_on(immediate)+subscribe 4960.85 ns 0.23 ns 0.33 ns 0.70

Combining Operators

name rxcpp rpp prev rpp ratio
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 7620.62 ns 450.62 ns 578.20 ns 0.78
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 8504.17 ns 446.34 ns 628.49 ns 0.71
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 474.65 ns 536.78 ns 0.88
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 8080.29 ns 1962.44 ns 2550.02 ns 0.77
immediate_just(1) + zip(immediate_just(2)) + subscribe 5177.48 ns 855.64 ns 1044.17 ns 0.82

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 75.13 ns 49.48 ns 65.33 ns 0.76

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 2782.23 ns 111.54 ns 59.39 ns 1.88
basic sample with immediate scheduler 2786.57 ns 15.40 ns 5.87 ns 2.63

Aggregating Operators

name rxcpp rpp prev rpp ratio
immediate_just+reduce(10, std::plus)+subscribe 2387.72 ns 0.23 ns 0.42 ns 0.55

Error Handling Operators

name rxcpp rpp prev rpp ratio
create(on_next(1), on_error())+on_error_resume_next(immediate_just(2)))+subscribe 6498.95 ns 4064.10 ns 6791.64 ns 0.60

ci-ubuntu-clang

General

name rxcpp rpp prev rpp ratio
Subscribe empty callbacks to empty observable 279.69 ns 0.92 ns 1.57 ns 0.59
Subscribe empty callbacks to empty observable via pipe operator 284.14 ns 0.88 ns 1.57 ns 0.56

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 572.57 ns 0.31 ns 0.31 ns 1.00
from array of 1 - create + subscribe + current_thread 820.82 ns 5.55 ns 5.56 ns 1.00
concat_as_source of just(1 immediate) create + subscribe 1950.56 ns 114.29 ns 112.64 ns 1.01
defer from array of 1 - defer + create + subscribe + immediate 604.86 ns 0.31 ns 0.31 ns 1.00
interval - interval + take(3) + subscribe + immediate 1535.58 ns 58.31 ns 58.30 ns 1.00
interval - interval + take(3) + subscribe + current_thread 2111.61 ns 31.47 ns 31.50 ns 1.00

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 921.02 ns 0.31 ns 0.31 ns 1.00
immediate_just+filter(true)+subscribe 664.03 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+skip(1)+subscribe 868.54 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,1,2)+distinct_until_changed()+subscribe 705.95 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+first()+subscribe 1094.60 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+last()+subscribe 747.23 ns 0.31 ns 0.31 ns 1.00
immediate_just+take_last(1)+subscribe 976.51 ns 0.31 ns 0.31 ns 1.00

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 206.92 ns 0.88 ns 1.55 ns 0.56
current_thread scheduler create worker + schedule 313.20 ns 5.59 ns 5.57 ns 1.00
current_thread scheduler create worker + schedule + recursive schedule 629.30 ns 60.11 ns 58.99 ns 1.02

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 658.11 ns 0.31 ns 0.31 ns 1.00
immediate_just+scan(10, std::plus)+subscribe 713.77 ns 0.31 ns 0.31 ns 1.00
immediate_just+flat_map(immediate_just(v*2))+subscribe 1833.63 ns 119.48 ns 119.28 ns 1.00
immediate_just+buffer(2)+subscribe 1366.88 ns 14.82 ns 14.20 ns 1.04
immediate_just+window(2)+subscribe + subscsribe inner 2145.18 ns 818.81 ns 801.64 ns 1.02

Conditional Operators

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

Utility Operators

name rxcpp rpp prev rpp ratio
immediate_just(1)+subscribe_on(immediate)+subscribe 1659.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 2541.66 ns 126.81 ns 124.88 ns 1.02
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 3048.08 ns 123.05 ns 121.09 ns 1.02
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 110.20 ns 110.55 ns 1.00
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 2651.12 ns 734.68 ns 727.90 ns 1.01
immediate_just(1) + zip(immediate_just(2)) + subscribe 1781.69 ns 169.19 ns 166.40 ns 1.02

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 26.27 ns 14.18 ns 14.50 ns 0.98

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 1044.77 ns 13.27 ns 13.28 ns 1.00
basic sample with immediate scheduler 1029.06 ns 6.17 ns 6.17 ns 1.00

Aggregating Operators

name rxcpp rpp prev rpp ratio
immediate_just+reduce(10, std::plus)+subscribe 753.36 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 864.85 ns 125.38 ns 126.70 ns 0.99

ci-windows

General

name rxcpp rpp prev rpp ratio
Subscribe empty callbacks to empty observable 577.49 ns 4.01 ns 4.95 ns 0.81
Subscribe empty callbacks to empty observable via pipe operator 594.86 ns 4.02 ns 4.95 ns 0.81

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 1206.33 ns 5.55 ns 5.68 ns 0.98
from array of 1 - create + subscribe + current_thread 1441.29 ns 19.14 ns 18.51 ns 1.03
concat_as_source of just(1 immediate) create + subscribe 4597.78 ns 170.48 ns 169.21 ns 1.01
defer from array of 1 - defer + create + subscribe + immediate 1209.59 ns 5.55 ns 5.55 ns 1.00
interval - interval + take(3) + subscribe + immediate 3000.75 ns 134.13 ns 133.73 ns 1.00
interval - interval + take(3) + subscribe + current_thread 3465.85 ns 57.73 ns 58.73 ns 0.98

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 1866.25 ns 12.87 ns 12.87 ns 1.00
immediate_just+filter(true)+subscribe 1700.67 ns 12.36 ns 11.70 ns 1.06
immediate_just(1,2)+skip(1)+subscribe 1768.51 ns 13.11 ns 13.12 ns 1.00
immediate_just(1,1,2)+distinct_until_changed()+subscribe 1382.42 ns 16.97 ns 15.79 ns 1.07
immediate_just(1,2)+first()+subscribe 2101.64 ns 12.64 ns 12.95 ns 0.98
immediate_just(1,2)+last()+subscribe 1482.35 ns 14.05 ns 14.12 ns 1.00
immediate_just+take_last(1)+subscribe 2059.92 ns 58.50 ns 60.40 ns 0.97

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 503.18 ns 6.18 ns 6.18 ns 1.00
current_thread scheduler create worker + schedule 671.50 ns 18.52 ns 18.22 ns 1.02
current_thread scheduler create worker + schedule + recursive schedule 1104.73 ns 116.75 ns 115.91 ns 1.01

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 1338.75 ns 12.30 ns 11.21 ns 1.10
immediate_just+scan(10, std::plus)+subscribe 1423.65 ns 21.28 ns 21.58 ns 0.99
immediate_just+flat_map(immediate_just(v*2))+subscribe 3920.61 ns 228.71 ns 234.53 ns 0.98
immediate_just+buffer(2)+subscribe 2321.46 ns 58.48 ns 59.93 ns 0.98
immediate_just+window(2)+subscribe + subscsribe inner 4112.19 ns 1569.91 ns 1563.98 ns 1.00

Conditional Operators

name rxcpp rpp prev rpp ratio
immediate_just+take_while(false)+subscribe 1327.42 ns 11.44 ns 11.44 ns 1.00
immediate_just+take_while(true)+subscribe 1330.85 ns 12.35 ns 11.71 ns 1.05

Utility Operators

name rxcpp rpp prev rpp ratio
immediate_just(1)+subscribe_on(immediate)+subscribe 4131.90 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 5165.12 ns 255.27 ns 263.67 ns 0.97
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 5865.98 ns 237.76 ns 245.35 ns 0.97
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 231.55 ns 238.58 ns 0.97
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 6194.80 ns 965.72 ns 958.62 ns 1.01
immediate_just(1) + zip(immediate_just(2)) + subscribe 3847.10 ns 545.74 ns 534.91 ns 1.02

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 37.20 ns 27.46 ns 26.82 ns 1.02

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 1885.69 ns 59.16 ns 59.30 ns 1.00
basic sample with immediate scheduler 1882.60 ns 35.48 ns 35.50 ns 1.00

Aggregating Operators

name rxcpp rpp prev rpp ratio
immediate_just+reduce(10, std::plus)+subscribe 1477.28 ns 17.82 ns 19.97 ns 0.89

Error Handling Operators

name rxcpp rpp prev rpp ratio
create(on_next(1), on_error())+on_error_resume_next(immediate_just(2)))+subscribe 1972.88 ns 338.70 ns 333.08 ns 1.02

Copy link

sonarcloud bot commented Mar 26, 2024

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

@victimsnino victimsnino merged commit cf14a07 into v2 Mar 26, 2024
27 checks passed
@victimsnino victimsnino deleted the fix_dynamic branch March 26, 2024 17:35
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