Skip to content

Remove unclear with_disposable typetrait#512

Merged
AlexInLog merged 2 commits into
v2from
feature/exact_disposable_strategy
Jan 25, 2024
Merged

Remove unclear with_disposable typetrait#512
AlexInLog merged 2 commits into
v2from
feature/exact_disposable_strategy

Conversation

@AlexInLog

Copy link
Copy Markdown
Owner

No description provided.

@AlexInLog AlexInLog force-pushed the feature/exact_disposable_strategy branch from a01e4b3 to 8b6b9be Compare January 25, 2024 18:36
@github-actions

github-actions Bot commented Jan 25, 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 309.16 ns 2.16 ns 1.54 ns 1.40
Subscribe empty callbacks to empty observable via pipe operator 305.58 ns 2.16 ns 1.54 ns 1.40

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 706.01 ns 0.31 ns 0.31 ns 1.00
from array of 1 - create + subscribe + current_thread 1031.93 ns 5.25 ns 5.25 ns 1.00
concat_as_source of just(1 immediate) create + subscribe 2291.84 ns 80.48 ns 81.50 ns 0.99
defer from array of 1 - defer + create + subscribe + immediate 732.10 ns 0.31 ns 0.31 ns 1.00
interval - interval + take(3) + subscribe + immediate 2104.62 ns 58.01 ns 58.04 ns 1.00
interval - interval + take(3) + subscribe + current_thread 3055.76 ns 32.11 ns 32.12 ns 1.00

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 1122.01 ns 0.31 ns 0.31 ns 1.00
immediate_just+filter(true)+subscribe 845.16 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+skip(1)+subscribe 1023.04 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,1,2)+distinct_until_changed()+subscribe 870.43 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+first()+subscribe 1260.41 ns 0.31 ns 0.62 ns 0.50
immediate_just(1,2)+last()+subscribe 920.96 ns 0.31 ns 0.31 ns 1.00
immediate_just+take_last(1)+subscribe 1146.60 ns 17.28 ns 17.30 ns 1.00

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 261.42 ns 2.16 ns 1.54 ns 1.40
current_thread scheduler create worker + schedule 369.23 ns 7.10 ns 6.18 ns 1.15
current_thread scheduler create worker + schedule + recursive schedule 799.27 ns 64.09 ns 63.51 ns 1.01

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 837.23 ns 0.31 ns 0.31 ns 1.00
immediate_just+scan(10, std::plus)+subscribe 885.15 ns 0.31 ns 0.31 ns 1.00
immediate_just+flat_map(immediate_just(v*2))+subscribe 2322.92 ns 110.80 ns 97.21 ns 1.14
immediate_just+buffer(2)+subscribe 1480.72 ns 13.59 ns 13.58 ns 1.00
immediate_just+window(2)+subscribe + subscsribe inner 2377.54 ns 621.12 ns 634.28 ns 0.98

Conditional Operators

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

Utility Operators

name rxcpp rpp prev rpp ratio
immediate_just(1)+subscribe_on(immediate)+subscribe 2019.46 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 3441.17 ns 152.72 ns 110.81 ns 1.38
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 3677.47 ns 121.38 ns 105.11 ns 1.15
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 100.25 ns 83.08 ns 1.21
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 3570.86 ns 480.31 ns 556.13 ns 0.86

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 34.51 ns 11.71 ns 11.42 ns 1.03

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 1373.96 ns 14.19 ns 14.51 ns 0.98
basic sample with immediate scheduler 1425.90 ns 5.55 ns 5.55 ns 1.00

Aggregating Operators

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

ci-macos

General

name rxcpp rpp prev rpp ratio
Subscribe empty callbacks to empty observable 1662.56 ns 4.71 ns 2.41 ns 1.95
Subscribe empty callbacks to empty observable via pipe operator 1227.08 ns 5.04 ns 2.73 ns 1.85

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 2783.98 ns 0.30 ns 0.24 ns 1.27
from array of 1 - create + subscribe + current_thread 3020.32 ns 31.27 ns 26.03 ns 1.20
concat_as_source of just(1 immediate) create + subscribe 7656.60 ns 402.60 ns 262.01 ns 1.54
defer from array of 1 - defer + create + subscribe + immediate 2379.70 ns 0.30 ns 0.24 ns 1.25
interval - interval + take(3) + subscribe + immediate 7392.10 ns 144.76 ns 115.85 ns 1.25
interval - interval + take(3) + subscribe + current_thread 7678.77 ns 135.53 ns 110.17 ns 1.23

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 5458.76 ns 0.40 ns 0.24 ns 1.65
immediate_just+filter(true)+subscribe 2595.60 ns 0.30 ns 0.25 ns 1.19
immediate_just(1,2)+skip(1)+subscribe 3303.16 ns 0.26 ns 0.26 ns 1.01
immediate_just(1,1,2)+distinct_until_changed()+subscribe 2581.65 ns 0.58 ns 0.52 ns 1.10
immediate_just(1,2)+first()+subscribe 4019.81 ns 0.28 ns 0.26 ns 1.06
immediate_just(1,2)+last()+subscribe 2668.58 ns 0.30 ns 0.27 ns 1.13
immediate_just+take_last(1)+subscribe 4027.89 ns 91.82 ns 77.26 ns 1.19

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 1040.94 ns 5.68 ns 3.33 ns 1.70
current_thread scheduler create worker + schedule 1423.12 ns 46.61 ns 38.51 ns 1.21
current_thread scheduler create worker + schedule + recursive schedule 2389.91 ns 263.22 ns 241.92 ns 1.09

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 2779.99 ns 0.29 ns 0.25 ns 1.19
immediate_just+scan(10, std::plus)+subscribe 2887.58 ns 0.58 ns 0.49 ns 1.19
immediate_just+flat_map(immediate_just(v*2))+subscribe 6439.76 ns 411.40 ns 345.36 ns 1.19
immediate_just+buffer(2)+subscribe 4785.95 ns 136.83 ns 70.47 ns 1.94
immediate_just+window(2)+subscribe + subscsribe inner 8700.55 ns 3551.68 ns 1977.41 ns 1.80

Conditional Operators

name rxcpp rpp prev rpp ratio
immediate_just+take_while(false)+subscribe 2551.60 ns - - 0.00
immediate_just+take_while(true)+subscribe 2724.29 ns 0.29 ns 0.24 ns 1.21

Utility Operators

name rxcpp rpp prev rpp ratio
immediate_just(1)+subscribe_on(immediate)+subscribe 5830.24 ns 0.27 ns 0.27 ns 1.03

Combining Operators

name rxcpp rpp prev rpp ratio
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 9887.44 ns 475.78 ns 407.53 ns 1.17
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 10517.97 ns 491.78 ns 403.59 ns 1.22
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 513.22 ns 438.10 ns 1.17
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 9963.72 ns 1764.22 ns 1543.45 ns 1.14

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 78.29 ns 48.14 ns 42.20 ns 1.14

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 3126.05 ns 116.13 ns 106.07 ns 1.09
basic sample with immediate scheduler 3474.95 ns 15.03 ns 14.58 ns 1.03

Aggregating Operators

name rxcpp rpp prev rpp ratio
immediate_just+reduce(10, std::plus)+subscribe 3827.18 ns 0.28 ns 0.26 ns 1.06

ci-ubuntu-clang

General

name rxcpp rpp prev rpp ratio
Subscribe empty callbacks to empty observable 269.22 ns 1.54 ns 0.88 ns 1.76
Subscribe empty callbacks to empty observable via pipe operator 265.73 ns 1.54 ns 0.88 ns 1.76

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 565.72 ns 0.31 ns 0.31 ns 1.00
from array of 1 - create + subscribe + current_thread 784.08 ns 5.56 ns 5.56 ns 1.00
concat_as_source of just(1 immediate) create + subscribe 1920.25 ns 72.29 ns 72.24 ns 1.00
defer from array of 1 - defer + create + subscribe + immediate 587.47 ns 0.31 ns 0.31 ns 1.00
interval - interval + take(3) + subscribe + immediate 1528.80 ns 57.07 ns 57.07 ns 1.00
interval - interval + take(3) + subscribe + current_thread 2111.19 ns 30.88 ns 30.88 ns 1.00

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 936.74 ns 0.31 ns 0.31 ns 1.00
immediate_just+filter(true)+subscribe 671.82 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+skip(1)+subscribe 853.50 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,1,2)+distinct_until_changed()+subscribe 716.93 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+first()+subscribe 1096.83 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+last()+subscribe 747.63 ns 0.31 ns 0.31 ns 1.00
immediate_just+take_last(1)+subscribe 958.62 ns 0.31 ns 0.31 ns 1.00

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 201.45 ns 1.54 ns 0.88 ns 1.76
current_thread scheduler create worker + schedule 303.25 ns 5.58 ns 5.56 ns 1.00
current_thread scheduler create worker + schedule + recursive schedule 633.16 ns 58.23 ns 59.09 ns 0.99

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 680.19 ns 0.31 ns 0.31 ns 1.00
immediate_just+scan(10, std::plus)+subscribe 713.53 ns 0.31 ns 0.31 ns 1.00
immediate_just+flat_map(immediate_just(v*2))+subscribe 1781.04 ns 83.66 ns 81.59 ns 1.03
immediate_just+buffer(2)+subscribe 1331.56 ns 14.19 ns 14.20 ns 1.00
immediate_just+window(2)+subscribe + subscsribe inner 2127.15 ns 592.48 ns 585.93 ns 1.01

Conditional Operators

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

Utility Operators

name rxcpp rpp prev rpp ratio
immediate_just(1)+subscribe_on(immediate)+subscribe 1574.61 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 2532.48 ns 90.99 ns 84.12 ns 1.08
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 3031.16 ns 86.51 ns 91.63 ns 0.94
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 82.75 ns 78.95 ns 1.05
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 2660.72 ns 545.34 ns 548.20 ns 0.99

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 22.99 ns 13.56 ns 12.33 ns 1.10

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 1051.01 ns 13.88 ns 14.50 ns 0.96
basic sample with immediate scheduler 1036.34 ns 5.86 ns 6.17 ns 0.95

Aggregating Operators

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

ci-windows

General

name rxcpp rpp prev rpp ratio
Subscribe empty callbacks to empty observable 578.16 ns 4.01 ns 3.09 ns 1.30
Subscribe empty callbacks to empty observable via pipe operator 604.24 ns 4.02 ns 3.09 ns 1.30

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 1176.17 ns 5.55 ns 5.24 ns 1.06
from array of 1 - create + subscribe + current_thread 1454.37 ns 19.74 ns 19.75 ns 1.00
concat_as_source of just(1 immediate) create + subscribe 4712.55 ns 164.13 ns 152.10 ns 1.08
defer from array of 1 - defer + create + subscribe + immediate 1218.60 ns 5.55 ns 5.24 ns 1.06
interval - interval + take(3) + subscribe + immediate 3160.00 ns 133.74 ns 131.42 ns 1.02
interval - interval + take(3) + subscribe + current_thread 3465.77 ns 60.79 ns 60.45 ns 1.01

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 2135.02 ns 12.86 ns 12.87 ns 1.00
immediate_just+filter(true)+subscribe 1352.70 ns 12.36 ns 12.33 ns 1.00
immediate_just(1,2)+skip(1)+subscribe 1776.38 ns 13.22 ns 12.97 ns 1.02
immediate_just(1,1,2)+distinct_until_changed()+subscribe 1383.19 ns 15.90 ns 19.75 ns 0.81
immediate_just(1,2)+first()+subscribe 2424.06 ns 12.94 ns 12.96 ns 1.00
immediate_just(1,2)+last()+subscribe 1531.48 ns 14.08 ns 14.02 ns 1.00
immediate_just+take_last(1)+subscribe 2055.03 ns 61.82 ns 61.57 ns 1.00

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 495.73 ns 7.40 ns 4.32 ns 1.71
current_thread scheduler create worker + schedule 676.87 ns 18.20 ns 17.59 ns 1.03
current_thread scheduler create worker + schedule + recursive schedule 1107.58 ns 114.18 ns 108.27 ns 1.05

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 1344.86 ns 12.33 ns 12.24 ns 1.01
immediate_just+scan(10, std::plus)+subscribe 1442.25 ns 21.27 ns 21.27 ns 1.00
immediate_just+flat_map(immediate_just(v*2))+subscribe 3544.82 ns 194.23 ns 201.42 ns 0.96
immediate_just+buffer(2)+subscribe 2634.33 ns 60.99 ns 61.45 ns 0.99
immediate_just+window(2)+subscribe + subscsribe inner 4133.33 ns 1055.09 ns 1039.13 ns 1.02

Conditional Operators

name rxcpp rpp prev rpp ratio
immediate_just+take_while(false)+subscribe 1330.28 ns 11.48 ns 11.45 ns 1.00
immediate_just+take_while(true)+subscribe 1337.19 ns 12.37 ns 12.32 ns 1.00

Utility Operators

name rxcpp rpp prev rpp ratio
immediate_just(1)+subscribe_on(immediate)+subscribe 3197.52 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 5435.71 ns 219.70 ns 216.57 ns 1.01
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 6737.25 ns 212.73 ns 198.28 ns 1.07
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 216.55 ns 231.84 ns 0.93
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 6222.42 ns 724.64 ns 704.28 ns 1.03

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 41.44 ns 25.89 ns 25.59 ns 1.01

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 1900.67 ns 60.21 ns 60.68 ns 0.99
basic sample with immediate scheduler 1891.19 ns 37.64 ns 37.64 ns 1.00

Aggregating Operators

name rxcpp rpp prev rpp ratio
immediate_just+reduce(10, std::plus)+subscribe 1787.21 ns 20.83 ns 19.97 ns 1.04

@codecov

codecov Bot commented Jan 25, 2024

Copy link
Copy Markdown

Codecov Report

All modified and coverable lines are covered by tests ✅

Comparison is base (c5cb2bd) 95.90% compared to head (997c06b) 95.90%.

Additional details and impacted files
@@           Coverage Diff           @@
##               v2     #512   +/-   ##
=======================================
  Coverage   95.90%   95.90%           
=======================================
  Files          78       78           
  Lines        2001     2001           
=======================================
  Hits         1919     1919           
  Misses         82       82           

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

@sonarqubecloud

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions

47.1% Duplication on New Code (required ≤ 3%)

See analysis details on SonarCloud

@AlexInLog AlexInLog marked this pull request as ready for review January 25, 2024 19:23
@AlexInLog AlexInLog merged commit b96c97c into v2 Jan 25, 2024
@AlexInLog AlexInLog deleted the feature/exact_disposable_strategy branch January 25, 2024 19:24
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