Skip to content

Add serialized subject#502

Merged
AlexInLog merged 4 commits into
v2from
feature/serialized_subject
Jan 5, 2024
Merged

Add serialized subject#502
AlexInLog merged 4 commits into
v2from
feature/serialized_subject

Conversation

@AlexInLog

Copy link
Copy Markdown
Owner

No description provided.

@github-actions

github-actions Bot commented Jan 5, 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 305.98 ns 1.23 ns 1.54 ns 0.80
Subscribe empty callbacks to empty observable via pipe operator 303.70 ns 1.24 ns 1.54 ns 0.80

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 685.97 ns 0.62 ns 0.62 ns 1.00
from array of 1 - create + subscribe + current_thread 1019.56 ns 4.63 ns 4.63 ns 1.00
concat_as_source of just(1 immediate) create + subscribe 2260.33 ns 79.12 ns 79.48 ns 1.00
defer from array of 1 - defer + create + subscribe + immediate 730.43 ns 0.31 ns 0.31 ns 1.00
interval - interval + take(3) + subscribe + immediate 2152.53 ns 58.02 ns 57.97 ns 1.00
interval - interval + take(3) + subscribe + current_thread 3069.62 ns 32.12 ns 32.10 ns 1.00

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 1069.85 ns 0.31 ns 0.31 ns 1.00
immediate_just+filter(true)+subscribe 825.05 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+skip(1)+subscribe 982.93 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,1,2)+distinct_until_changed()+subscribe 869.40 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+first()+subscribe 1225.45 ns 0.62 ns 0.62 ns 1.00
immediate_just(1,2)+last()+subscribe 921.55 ns 0.31 ns 0.31 ns 1.00
immediate_just+take_last(1)+subscribe 1106.38 ns 17.90 ns 18.52 ns 0.97

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 284.23 ns 1.24 ns 1.54 ns 0.80
current_thread scheduler create worker + schedule 371.18 ns 5.55 ns 5.55 ns 1.00
current_thread scheduler create worker + schedule + recursive schedule 806.89 ns 63.26 ns 70.91 ns 0.89

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 845.18 ns 0.31 ns 0.31 ns 1.00
immediate_just+scan(10, std::plus)+subscribe 910.87 ns 0.31 ns 0.31 ns 1.00
immediate_just+flat_map(immediate_just(v*2))+subscribe 2323.47 ns 96.21 ns 96.46 ns 1.00
immediate_just+buffer(2)+subscribe 1524.69 ns 14.19 ns 14.19 ns 1.00
immediate_just+window(2)+subscribe + subscsribe inner 2375.91 ns 690.05 ns 688.10 ns 1.00

Conditional Operators

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

Utility Operators

name rxcpp rpp prev rpp ratio
immediate_just(1)+subscribe_on(immediate)+subscribe 2340.24 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 3390.94 ns 114.65 ns 113.86 ns 1.01
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 3635.03 ns 107.69 ns 107.52 ns 1.00
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 85.82 ns 86.39 ns 0.99
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 3530.46 ns 484.01 ns 489.71 ns 0.99

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 34.49 ns 23.55 ns 23.36 ns 1.01

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 1447.56 ns 14.82 ns 14.81 ns 1.00
basic sample with immediate scheduler 1401.14 ns 5.55 ns 5.56 ns 1.00

Aggregating Operators

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

ci-macos

General

name rxcpp rpp prev rpp ratio
Subscribe empty callbacks to empty observable 1166.15 ns 3.31 ns 3.41 ns 0.97
Subscribe empty callbacks to empty observable via pipe operator 1179.39 ns 3.39 ns 3.41 ns 1.00

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 2404.57 ns 0.44 ns 0.44 ns 0.98
from array of 1 - create + subscribe + current_thread 2903.03 ns 8.89 ns 8.97 ns 0.99
concat_as_source of just(1 immediate) create + subscribe 6826.26 ns 287.10 ns 288.66 ns 0.99
defer from array of 1 - defer + create + subscribe + immediate 2478.95 ns 0.28 ns 0.28 ns 1.01
interval - interval + take(3) + subscribe + immediate 6492.98 ns 90.63 ns 93.42 ns 0.97
interval - interval + take(3) + subscribe + current_thread 8218.24 ns 58.32 ns 62.16 ns 0.94

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 3559.08 ns 0.28 ns 0.28 ns 1.00
immediate_just+filter(true)+subscribe 2674.37 ns 0.28 ns 0.28 ns 0.99
immediate_just(1,2)+skip(1)+subscribe 3486.21 ns 0.27 ns 0.28 ns 0.98
immediate_just(1,1,2)+distinct_until_changed()+subscribe 2726.47 ns 0.55 ns 0.56 ns 0.98
immediate_just(1,2)+first()+subscribe 3936.30 ns 0.28 ns 0.28 ns 0.99
immediate_just(1,2)+last()+subscribe 3077.62 ns 0.28 ns 0.28 ns 0.99
immediate_just+take_last(1)+subscribe 3685.59 ns 72.94 ns 79.23 ns 0.92

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 1054.67 ns 3.92 ns 3.95 ns 0.99
current_thread scheduler create worker + schedule 1305.95 ns 13.72 ns 13.92 ns 0.99
current_thread scheduler create worker + schedule + recursive schedule 2601.47 ns 164.16 ns 165.82 ns 0.99

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 2521.96 ns 0.28 ns 0.28 ns 0.98
immediate_just+scan(10, std::plus)+subscribe 2912.32 ns 0.56 ns 0.56 ns 0.99
immediate_just+flat_map(immediate_just(v*2))+subscribe 7410.63 ns 364.93 ns 341.43 ns 1.07
immediate_just+buffer(2)+subscribe 3163.18 ns 76.02 ns 69.98 ns 1.09
immediate_just+window(2)+subscribe + subscsribe inner 7097.66 ns 2303.23 ns 2231.40 ns 1.03

Conditional Operators

name rxcpp rpp prev rpp ratio
immediate_just+take_while(false)+subscribe 2665.69 ns - - 0.00
immediate_just+take_while(true)+subscribe 2544.16 ns 0.28 ns 0.28 ns 0.98

Utility Operators

name rxcpp rpp prev rpp ratio
immediate_just(1)+subscribe_on(immediate)+subscribe 6390.42 ns 0.28 ns 0.28 ns 0.98

Combining Operators

name rxcpp rpp prev rpp ratio
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 10195.93 ns 398.21 ns 381.79 ns 1.04
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 11938.52 ns 380.16 ns 434.11 ns 0.88
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 405.03 ns 402.22 ns 1.01
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 12035.41 ns 1741.80 ns 1692.30 ns 1.03

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 95.39 ns 90.62 ns 91.70 ns 0.99

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 3609.51 ns 43.69 ns 45.90 ns 0.95
basic sample with immediate scheduler 3377.88 ns 6.40 ns 6.40 ns 1.00

Aggregating Operators

name rxcpp rpp prev rpp ratio
immediate_just+reduce(10, std::plus)+subscribe 2945.63 ns 0.28 ns 0.28 ns 0.98

ci-ubuntu-clang

General

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

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 588.38 ns 0.31 ns 0.31 ns 1.00
from array of 1 - create + subscribe + current_thread 857.13 ns 5.56 ns 5.56 ns 1.00
concat_as_source of just(1 immediate) create + subscribe 1966.87 ns 74.04 ns 112.65 ns 0.66
defer from array of 1 - defer + create + subscribe + immediate 589.12 ns 0.31 ns 0.31 ns 1.00
interval - interval + take(3) + subscribe + immediate 1612.06 ns 57.08 ns 57.07 ns 1.00
interval - interval + take(3) + subscribe + current_thread 2163.81 ns 30.86 ns 30.86 ns 1.00

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 985.81 ns 0.31 ns 0.31 ns 1.00
immediate_just+filter(true)+subscribe 684.12 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+skip(1)+subscribe 880.20 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,1,2)+distinct_until_changed()+subscribe 715.82 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+first()+subscribe 1114.27 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+last()+subscribe 797.89 ns 0.31 ns 0.31 ns 1.00
immediate_just+take_last(1)+subscribe 979.02 ns 0.31 ns 0.31 ns 1.00

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 192.75 ns 0.88 ns 0.88 ns 1.00
current_thread scheduler create worker + schedule 306.81 ns 5.56 ns 5.56 ns 1.00
current_thread scheduler create worker + schedule + recursive schedule 679.90 ns 58.49 ns 58.06 ns 1.01

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 683.16 ns 0.31 ns 0.31 ns 1.00
immediate_just+scan(10, std::plus)+subscribe 764.84 ns 0.31 ns 0.31 ns 1.00
immediate_just+flat_map(immediate_just(v*2))+subscribe 1883.59 ns 79.63 ns 80.43 ns 0.99
immediate_just+buffer(2)+subscribe 1485.11 ns 13.58 ns 14.51 ns 0.94
immediate_just+window(2)+subscribe + subscsribe inner 2223.41 ns 597.87 ns 615.62 ns 0.97

Conditional Operators

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

Utility Operators

name rxcpp rpp prev rpp ratio
immediate_just(1)+subscribe_on(immediate)+subscribe 1661.43 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 2594.42 ns 86.28 ns 88.64 ns 0.97
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 3148.29 ns 97.36 ns 95.14 ns 1.02
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 81.45 ns 80.87 ns 1.01
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 2773.20 ns 539.52 ns 548.13 ns 0.98

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 23.13 ns 24.33 ns 24.35 ns 1.00

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 1115.85 ns 13.58 ns 13.58 ns 1.00
basic sample with immediate scheduler 1069.07 ns 6.17 ns 6.17 ns 1.00

Aggregating Operators

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

ci-windows

General

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

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 1183.01 ns 4.93 ns 4.93 ns 1.00
from array of 1 - create + subscribe + current_thread 1438.94 ns 19.75 ns 20.06 ns 0.98
concat_as_source of just(1 immediate) create + subscribe 4720.99 ns 156.53 ns 156.51 ns 1.00
defer from array of 1 - defer + create + subscribe + immediate 1201.71 ns 4.94 ns 4.94 ns 1.00
interval - interval + take(3) + subscribe + immediate 3077.34 ns 131.20 ns 129.50 ns 1.01
interval - interval + take(3) + subscribe + current_thread 3455.03 ns 60.45 ns 59.90 ns 1.01

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 1879.68 ns 12.87 ns 12.83 ns 1.00
immediate_just+filter(true)+subscribe 1344.75 ns 12.32 ns 12.32 ns 1.00
immediate_just(1,2)+skip(1)+subscribe 1750.39 ns 13.10 ns 13.16 ns 1.00
immediate_just(1,1,2)+distinct_until_changed()+subscribe 1632.60 ns 15.95 ns 15.79 ns 1.01
immediate_just(1,2)+first()+subscribe 2403.59 ns 12.95 ns 12.77 ns 1.01
immediate_just(1,2)+last()+subscribe 1480.23 ns 14.10 ns 14.13 ns 1.00
immediate_just+take_last(1)+subscribe 2087.22 ns 59.02 ns 58.74 ns 1.00

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 487.43 ns 4.94 ns 4.94 ns 1.00
current_thread scheduler create worker + schedule 673.12 ns 17.09 ns 16.04 ns 1.07
current_thread scheduler create worker + schedule + recursive schedule 1089.78 ns 104.03 ns 105.21 ns 0.99

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 1339.90 ns 12.33 ns 12.33 ns 1.00
immediate_just+scan(10, std::plus)+subscribe 1449.47 ns 21.27 ns 21.60 ns 0.99
immediate_just+flat_map(immediate_just(v*2))+subscribe 3546.84 ns 198.05 ns 200.17 ns 0.99
immediate_just+buffer(2)+subscribe 2636.56 ns 62.56 ns 61.84 ns 1.01
immediate_just+window(2)+subscribe + subscsribe inner 4143.17 ns 1082.19 ns 1114.75 ns 0.97

Conditional Operators

name rxcpp rpp prev rpp ratio
immediate_just+take_while(false)+subscribe 1604.90 ns 11.46 ns 11.46 ns 1.00
immediate_just+take_while(true)+subscribe 1344.62 ns 12.32 ns 12.33 ns 1.00

Utility Operators

name rxcpp rpp prev rpp ratio
immediate_just(1)+subscribe_on(immediate)+subscribe 3172.40 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 5189.86 ns 243.32 ns 239.90 ns 1.01
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 6506.82 ns 211.01 ns 212.34 ns 0.99
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 218.96 ns 221.82 ns 0.99
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 6180.84 ns 738.15 ns 736.82 ns 1.00

Subjects

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

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 1899.33 ns 59.82 ns 59.86 ns 1.00
basic sample with immediate scheduler 1903.82 ns 35.17 ns 35.20 ns 1.00

Aggregating Operators

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

@codecov

codecov Bot commented Jan 5, 2024

Copy link
Copy Markdown

Codecov Report

All modified and coverable lines are covered by tests ✅

Comparison is base (7cce988) 95.54% compared to head (31087ad) 95.57%.

Additional details and impacted files
@@            Coverage Diff             @@
##               v2     #502      +/-   ##
==========================================
+ Coverage   95.54%   95.57%   +0.02%     
==========================================
  Files          76       77       +1     
  Lines        1907     1919      +12     
==========================================
+ Hits         1822     1834      +12     
  Misses         85       85              

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

@sonarqubecloud

sonarqubecloud Bot commented Jan 5, 2024

Copy link
Copy Markdown

Quality Gate Passed Quality Gate passed

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

3 New issues
0 Security Hotspots
100.0% Coverage on New Code
0.0% Duplication on New Code

See analysis details on SonarCloud

@AlexInLog AlexInLog marked this pull request as ready for review January 5, 2024 21:08
@AlexInLog AlexInLog merged commit 80bc0d3 into v2 Jan 5, 2024
@AlexInLog AlexInLog deleted the feature/serialized_subject branch January 5, 2024 21:09
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