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

Make static container without array #510

Merged
merged 5 commits into from
Jan 22, 2024
Merged

Conversation

victimsnino
Copy link
Owner

No description provided.

Repository owner deleted a comment from github-actions bot Jan 22, 2024
Copy link
Contributor

BENCHMARK RESULTS (AUTOGENERATED)

ci-ubuntu-gcc

General

name rxcpp rpp prev rpp ratio
Subscribe empty callbacks to empty observable 296.99 ns 1.24 ns 1.24 ns 1.00
Subscribe empty callbacks to empty observable via pipe operator 299.93 ns 1.23 ns 1.24 ns 1.00

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 694.93 ns 0.31 ns 0.31 ns 1.00
from array of 1 - create + subscribe + current_thread 1041.83 ns 5.25 ns 4.63 ns 1.13
concat_as_source of just(1 immediate) create + subscribe 2324.57 ns 82.40 ns 86.09 ns 0.96
defer from array of 1 - defer + create + subscribe + immediate 810.17 ns 0.31 ns 0.31 ns 1.00
interval - interval + take(3) + subscribe + immediate 2211.34 ns 58.02 ns 58.01 ns 1.00
interval - interval + take(3) + subscribe + current_thread 3029.68 ns 32.11 ns 32.14 ns 1.00

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 1081.02 ns 0.31 ns 0.31 ns 1.00
immediate_just+filter(true)+subscribe 897.39 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+skip(1)+subscribe 1022.18 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,1,2)+distinct_until_changed()+subscribe 903.54 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+first()+subscribe 1437.96 ns 0.62 ns 0.31 ns 2.00
immediate_just(1,2)+last()+subscribe 952.86 ns 0.31 ns 0.31 ns 1.00
immediate_just+take_last(1)+subscribe 1104.54 ns 18.83 ns 18.42 ns 1.02

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 264.32 ns 1.24 ns 1.24 ns 1.00
current_thread scheduler create worker + schedule 365.69 ns 6.49 ns 5.56 ns 1.17
current_thread scheduler create worker + schedule + recursive schedule 841.60 ns 74.09 ns 63.70 ns 1.16

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 880.00 ns 0.31 ns 0.31 ns 1.00
immediate_just+scan(10, std::plus)+subscribe 918.35 ns 0.31 ns 0.31 ns 1.00
immediate_just+flat_map(immediate_just(v*2))+subscribe 2415.64 ns 97.35 ns 97.27 ns 1.00
immediate_just+buffer(2)+subscribe 1545.01 ns 14.51 ns 14.53 ns 1.00
immediate_just+window(2)+subscribe + subscsribe inner 2362.19 ns 690.30 ns 708.41 ns 0.97

Conditional Operators

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

Utility Operators

name rxcpp rpp prev rpp ratio
immediate_just(1)+subscribe_on(immediate)+subscribe 2016.75 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 3489.76 ns 114.26 ns 128.19 ns 0.89
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 3652.02 ns 108.84 ns 111.12 ns 0.98
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 85.22 ns 86.19 ns 0.99
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 3610.38 ns 499.00 ns 479.58 ns 1.04

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 34.49 ns 23.05 ns 23.75 ns 0.97

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 1458.14 ns 14.21 ns 15.75 ns 0.90
basic sample with immediate scheduler 1383.76 ns 5.55 ns 5.55 ns 1.00

Aggregating Operators

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

ci-macos

General

name rxcpp rpp prev rpp ratio
Subscribe empty callbacks to empty observable 1335.20 ns 6.05 ns 3.05 ns 1.98
Subscribe empty callbacks to empty observable via pipe operator 1608.63 ns 6.16 ns 3.08 ns 2.00

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 2933.65 ns 0.61 ns 0.28 ns 2.17
from array of 1 - create + subscribe + current_thread 4236.17 ns 36.83 ns 30.18 ns 1.22
concat_as_source of just(1 immediate) create + subscribe 9436.80 ns 481.52 ns 252.48 ns 1.91
defer from array of 1 - defer + create + subscribe + immediate 3417.50 ns 0.43 ns 0.27 ns 1.57
interval - interval + take(3) + subscribe + immediate 6237.75 ns 144.17 ns 134.73 ns 1.07
interval - interval + take(3) + subscribe + current_thread 9974.43 ns 167.02 ns 128.55 ns 1.30

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 4453.31 ns 0.60 ns 0.23 ns 2.55
immediate_just+filter(true)+subscribe 2657.93 ns 0.60 ns 0.24 ns 2.53
immediate_just(1,2)+skip(1)+subscribe 3395.57 ns 0.34 ns 0.23 ns 1.46
immediate_just(1,1,2)+distinct_until_changed()+subscribe 2683.08 ns 0.58 ns 0.47 ns 1.24
immediate_just(1,2)+first()+subscribe 3954.66 ns 0.29 ns 0.23 ns 1.24
immediate_just(1,2)+last()+subscribe 2993.66 ns 0.29 ns 0.23 ns 1.24
immediate_just+take_last(1)+subscribe 4844.98 ns 129.02 ns 69.78 ns 1.85

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 1428.05 ns 6.02 ns 3.09 ns 1.95
current_thread scheduler create worker + schedule 1521.71 ns 46.16 ns 35.42 ns 1.30
current_thread scheduler create worker + schedule + recursive schedule 2485.34 ns 383.33 ns 218.28 ns 1.76

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 2614.62 ns 0.29 ns 0.23 ns 1.23
immediate_just+scan(10, std::plus)+subscribe 4035.34 ns 0.83 ns 0.47 ns 1.78
immediate_just+flat_map(immediate_just(v*2))+subscribe 6626.68 ns 406.98 ns 332.33 ns 1.22
immediate_just+buffer(2)+subscribe 4268.98 ns 85.42 ns 68.37 ns 1.25
immediate_just+window(2)+subscribe + subscsribe inner 6641.20 ns 2511.38 ns 1864.75 ns 1.35

Conditional Operators

name rxcpp rpp prev rpp ratio
immediate_just+take_while(false)+subscribe 2587.00 ns - - 0.00
immediate_just+take_while(true)+subscribe 2586.72 ns 0.29 ns 0.23 ns 1.23

Utility Operators

name rxcpp rpp prev rpp ratio
immediate_just(1)+subscribe_on(immediate)+subscribe 8531.43 ns 0.31 ns 0.23 ns 1.32

Combining Operators

name rxcpp rpp prev rpp ratio
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 10702.08 ns 657.51 ns 369.41 ns 1.78
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 10578.72 ns 667.45 ns 377.28 ns 1.77
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 496.59 ns 402.03 ns 1.24
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 9953.43 ns 1731.96 ns 1402.50 ns 1.23

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 91.14 ns 88.44 ns 70.51 ns 1.25

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 4830.89 ns 173.04 ns 106.21 ns 1.63
basic sample with immediate scheduler 5041.85 ns 20.78 ns 14.86 ns 1.40

Aggregating Operators

name rxcpp rpp prev rpp ratio
immediate_just+reduce(10, std::plus)+subscribe 3614.91 ns 0.60 ns 0.23 ns 2.59

ci-ubuntu-clang

General

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

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 566.08 ns 0.31 ns 0.31 ns 1.00
from array of 1 - create + subscribe + current_thread 789.43 ns 5.55 ns 5.55 ns 1.00
concat_as_source of just(1 immediate) create + subscribe 1900.19 ns 75.18 ns 72.22 ns 1.04
defer from array of 1 - defer + create + subscribe + immediate 587.00 ns 0.31 ns 0.31 ns 1.00
interval - interval + take(3) + subscribe + immediate 1564.43 ns 57.13 ns 57.03 ns 1.00
interval - interval + take(3) + subscribe + current_thread 2120.16 ns 30.86 ns 30.86 ns 1.00

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 913.44 ns 0.31 ns 0.31 ns 1.00
immediate_just+filter(true)+subscribe 646.13 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+skip(1)+subscribe 854.38 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,1,2)+distinct_until_changed()+subscribe 692.10 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+first()+subscribe 1057.36 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+last()+subscribe 744.23 ns 0.31 ns 0.31 ns 1.00
immediate_just+take_last(1)+subscribe 939.46 ns 0.31 ns 0.31 ns 1.00

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 198.58 ns 0.88 ns 0.88 ns 0.99
current_thread scheduler create worker + schedule 315.61 ns 5.57 ns 5.58 ns 1.00
current_thread scheduler create worker + schedule + recursive schedule 635.54 ns 58.15 ns 58.41 ns 1.00

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 671.91 ns 0.31 ns 0.31 ns 1.00
immediate_just+scan(10, std::plus)+subscribe 727.97 ns 0.31 ns 0.31 ns 1.00
immediate_just+flat_map(immediate_just(v*2))+subscribe 1783.48 ns 77.55 ns 74.51 ns 1.04
immediate_just+buffer(2)+subscribe 1384.96 ns 13.58 ns 13.27 ns 1.02
immediate_just+window(2)+subscribe + subscsribe inner 2139.33 ns 607.14 ns 603.21 ns 1.01

Conditional Operators

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

Utility Operators

name rxcpp rpp prev rpp ratio
immediate_just(1)+subscribe_on(immediate)+subscribe 1593.05 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 2521.01 ns 84.15 ns 86.26 ns 0.98
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 2995.52 ns 93.71 ns 94.85 ns 0.99
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 79.25 ns 79.90 ns 0.99
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 2684.63 ns 544.81 ns 548.40 ns 0.99

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 22.96 ns 24.28 ns 24.31 ns 1.00

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 1035.94 ns 14.50 ns 14.50 ns 1.00
basic sample with immediate scheduler 1036.48 ns 6.17 ns 6.17 ns 1.00

Aggregating Operators

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

ci-windows

General

name rxcpp rpp prev rpp ratio
Subscribe empty callbacks to empty observable 580.20 ns 3.09 ns 2.47 ns 1.25
Subscribe empty callbacks to empty observable via pipe operator 592.70 ns 3.09 ns 2.47 ns 1.25

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 1179.44 ns 4.93 ns 5.24 ns 0.94
from array of 1 - create + subscribe + current_thread 1454.88 ns 20.40 ns 20.06 ns 1.02
concat_as_source of just(1 immediate) create + subscribe 4703.65 ns 166.39 ns 156.90 ns 1.06
defer from array of 1 - defer + create + subscribe + immediate 1203.35 ns 4.94 ns 5.55 ns 0.89
interval - interval + take(3) + subscribe + immediate 3119.67 ns 130.52 ns 129.47 ns 1.01
interval - interval + take(3) + subscribe + current_thread 3436.91 ns 60.53 ns 59.93 ns 1.01

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 1859.19 ns 12.86 ns 12.86 ns 1.00
immediate_just+filter(true)+subscribe 1327.08 ns 12.33 ns 12.32 ns 1.00
immediate_just(1,2)+skip(1)+subscribe 1766.21 ns 12.98 ns 12.98 ns 1.00
immediate_just(1,1,2)+distinct_until_changed()+subscribe 1368.74 ns 15.95 ns 15.84 ns 1.01
immediate_just(1,2)+first()+subscribe 2427.91 ns 12.98 ns 12.64 ns 1.03
immediate_just(1,2)+last()+subscribe 1495.04 ns 14.17 ns 14.11 ns 1.00
immediate_just+take_last(1)+subscribe 2068.13 ns 59.00 ns 60.18 ns 0.98

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 488.42 ns 4.63 ns 4.63 ns 1.00
current_thread scheduler create worker + schedule 655.61 ns 16.97 ns 16.06 ns 1.06
current_thread scheduler create worker + schedule + recursive schedule 1094.00 ns 104.58 ns 107.88 ns 0.97

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 1327.86 ns 12.26 ns 12.33 ns 0.99
immediate_just+scan(10, std::plus)+subscribe 1445.62 ns 21.27 ns 21.58 ns 0.99
immediate_just+flat_map(immediate_just(v*2))+subscribe 3580.54 ns 185.09 ns 203.12 ns 0.91
immediate_just+buffer(2)+subscribe 2671.76 ns 57.77 ns 58.45 ns 0.99
immediate_just+window(2)+subscribe + subscsribe inner 4094.27 ns 1041.95 ns 1109.80 ns 0.94

Conditional Operators

name rxcpp rpp prev rpp ratio
immediate_just+take_while(false)+subscribe 1602.94 ns 11.41 ns 11.46 ns 1.00
immediate_just+take_while(true)+subscribe 1344.17 ns 12.33 ns 12.33 ns 1.00

Utility Operators

name rxcpp rpp prev rpp ratio
immediate_just(1)+subscribe_on(immediate)+subscribe 3487.54 ns 7.40 ns 7.71 ns 0.96

Combining Operators

name rxcpp rpp prev rpp ratio
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 5226.19 ns 207.32 ns 229.71 ns 0.90
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 6503.11 ns 189.73 ns 215.02 ns 0.88
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 219.55 ns 224.78 ns 0.98
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 6223.37 ns 728.02 ns 765.64 ns 0.95

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 37.61 ns 36.72 ns 36.75 ns 1.00

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 1863.08 ns 59.91 ns 60.70 ns 0.99
basic sample with immediate scheduler 1865.62 ns 39.83 ns 37.64 ns 1.06

Aggregating Operators

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

Copy link

codecov bot commented Jan 22, 2024

Codecov Report

Attention: 1 lines in your changes are missing coverage. Please review.

Comparison is base (a9de26e) 95.80% compared to head (3e2a98d) 95.90%.

Files Patch % Lines
src/rpp/rpp/disposables/details/container.hpp 96.66% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##               v2     #510      +/-   ##
==========================================
+ Coverage   95.80%   95.90%   +0.09%     
==========================================
  Files          78       78              
  Lines        1979     2001      +22     
==========================================
+ Hits         1896     1919      +23     
+ Misses         83       82       -1     

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

@victimsnino victimsnino marked this pull request as ready for review January 22, 2024 15:14
Copy link

sonarcloud bot commented Jan 22, 2024

Quality Gate Passed Quality Gate passed

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

4 New issues
0 Security Hotspots
66.7% Coverage on New Code
0.0% Duplication on New Code

See analysis details on SonarCloud

@victimsnino victimsnino merged commit 7d0b2d2 into v2 Jan 22, 2024
28 checks passed
@victimsnino victimsnino deleted the feature/static_without_array branch January 22, 2024 15:32
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