Skip to content

Concat operator - #179

Merged
AlexInLog merged 6 commits into
mainfrom
concat
Jul 18, 2022
Merged

Concat operator#179
AlexInLog merged 6 commits into
mainfrom
concat

Conversation

@AlexInLog

Copy link
Copy Markdown
Owner

No description provided.

@AlexInLog AlexInLog closed this Jul 16, 2022
@github-actions

github-actions Bot commented Jul 16, 2022

Copy link
Copy Markdown
Contributor

Linux CLANG

Observable construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable construction 0.40ns 0.401238 1.00 0.40ns
Dynamic observable construction 31.91ns 28.7941 1.11 27.77ns
Specific observable construction + as_dynamic 31.89ns 28.5529 1.12 25.00ns

Observable lift

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable lift specific observer 78.09ns 78.1719 1.00 290.96ns
Specific observable lift dynamic observer 105.30ns 105.286 1.00 308.04ns
Dynamic observable lift specific observer 160.57ns 161.12 1.00 342.71ns
Dynamic observable lift dynamic observer 183.79ns 177.734 1.03 327.14ns

Observable subscribe

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe specific observer 48.68ns 48.7049 1.00 289.23ns
Specific observable subscribe dynamic observer 61.20ns 61.7314 0.99 297.60ns
Dynamic observable subscribe specific observer 111.32ns 110.872 1.00 335.87ns
Dynamic observable subscribe dynamic observer 114.39ns 116.114 0.99 318.66ns

Observable subscribe #2

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe lambda 48.71ns 48.7186 1.00 289.07ns
Dynamic observable subscribe lambda 110.81ns 110.492 1.00 333.35ns
Specific observable subscribe lambda without subscription 48.81ns 48.6745 1.00 286.35ns
Dynamic observable subscribe lambda without subscription 111.22ns 110.363 1.01 335.15ns
Specific observable subscribe specific subscriber 16.08ns 16.0699 1.00 220.83ns
Dynamic observable subscribe specific subscriber 77.41ns 77.5328 1.00 270.19ns
Specific observable subscribe dynamic observer 16.07ns 16.0577 1.00 242.43ns
Dynamic observable subscribe dynamic observer 68.32ns 68.3459 1.00 260.41ns

Observer construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer construction 0.40ns 0.401862 1.00 0.40ns
Dynamic observer construction 31.30ns 31.4889 0.99 19.66ns
Specific observer construction + as_dynamic 31.41ns 28.6729 1.10 19.68ns

OnNext

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer OnNext 0.80ns 0.441901 1.82 0.80ns
Dynamic observer OnNext 1.61ns 1.60838 1.00 1.61ns

Operators

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
map construction from observable via dot + subscribe 75.90ns 75.929 1.00 241.93ns

Subscriber construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Make subsriber 32.90ns 32.8031 1.00 73.54ns
Make copy of subscriber 18.87ns 16.0583 1.18 5.01ns
Transform subsriber to dynamic 46.95ns 47.0403 1.00 24.91ns

Subscription

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
composite_subscription create 33.62ns 33.7684 1.00 49.89ns
composite_subscription add 48.47ns 45.2584 1.07 21.40ns
composite_subscription unsubscribe 8.04ns 8.04282 1.00 13.66ns

foundamental sources

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
empty 16.09ns 16.1202 1.00 31.15ns
error 48.33ns 48.7294 0.99 73.63ns
never 16.07ns 16.0763 1.00 231.43ns

from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
from vector with int 25.52ns 26.2904 0.97 54.98ns

just

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
just send int 16.07ns 16.0857 1.00 31.75ns
just send variadic 18.94ns 18.9111 1.00 38.43ns

merge

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
merge 16.78ns 16.8705 0.99 122.31ns
merge_with 77.18ns 76.8723 1.00 291.88ns

publish_subject callbacks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
on_next 30.77ns 30.7735 1.00 8.86ns
on_error 2.02ns 2.01869 1.00 19.00ns
on_completed 1.67ns 1.66009 1.01 0.80ns

publish_subject routines

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
construct 170.74ns 171.513 1.00 157.14ns
get_observable 33.73ns 33.779 1.00 45.18ns
get_subscriber 67.37ns 66.9926 1.01 13.11ns

Linux GCC

Observable construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable construction 0.40ns 0.334558 1.21 0.40ns
Dynamic observable construction 17.39ns 18.6454 0.93 21.65ns
Specific observable construction + as_dynamic 17.33ns 18.9697 0.91 21.71ns

Observable lift

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable lift specific observer 24.35ns 27.6645 0.88 345.04ns
Specific observable lift dynamic observer 27.52ns 31.2006 0.88 353.30ns
Dynamic observable lift specific observer 75.67ns 73.5072 1.03 395.49ns
Dynamic observable lift dynamic observer 70.75ns 69.7569 1.01 373.57ns

Observable subscribe

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe specific observer 22.39ns 23.143 0.97 330.58ns
Specific observable subscribe dynamic observer 20.52ns 25.4603 0.81 342.02ns
Dynamic observable subscribe specific observer 49.70ns 52.9366 0.94 371.58ns
Dynamic observable subscribe dynamic observer 37.30ns 39.693 0.94 355.93ns

Observable subscribe #2

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe lambda 20.73ns 23.4094 0.89 326.39ns
Dynamic observable subscribe lambda 57.15ns 57.5547 0.99 405.76ns
Specific observable subscribe lambda without subscription 21.04ns 23.5806 0.89 324.50ns
Dynamic observable subscribe lambda without subscription 49.39ns 52.0319 0.95 435.59ns
Specific observable subscribe specific subscriber 6.01ns 3.81228 1.58 274.28ns
Dynamic observable subscribe specific subscriber 28.53ns 31.238 0.91 327.21ns
Specific observable subscribe dynamic observer 6.03ns 3.79736 1.59 291.52ns
Dynamic observable subscribe dynamic observer 17.79ns 15.8698 1.12 303.35ns

Observer construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer construction 0.43ns 0.33493 1.28 0.40ns
Dynamic observer construction 17.28ns 19.4523 0.89 18.53ns
Specific observer construction + as_dynamic 17.74ns 19.286 0.92 19.38ns

OnNext

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer OnNext 0.43ns 0.334813 1.29 0.44ns
Dynamic observer OnNext 1.61ns 1.67597 0.96 1.61ns

Operators

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
map construction from observable via dot + subscribe 24.52ns 14.8885 1.65 355.75ns

Subscriber construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Make subsriber 19.36ns 21.7313 0.89 61.21ns
Make copy of subscriber 6.02ns 3.72724 1.62 5.95ns
Transform subsriber to dynamic 21.12ns 21.7748 0.97 30.17ns

Subscription

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
composite_subscription create 19.65ns 21.2274 0.93 51.11ns
composite_subscription add 26.97ns 21.8264 1.24 14.30ns
composite_subscription unsubscribe 8.05ns 8.37282 0.96 10.89ns

foundamental sources

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
empty 6.00ns 3.50168 1.71 47.18ns
error 44.73ns 35.8598 1.25 84.18ns
never 6.01ns 3.57881 1.68 299.30ns

from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
from vector with int 19.28ns 22.4911 0.86 64.42ns

just

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
just send int 5.47ns 3.65316 1.50 48.57ns
just send variadic 6.01ns 4.08569 1.47 48.84ns

merge

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
merge 6.11ns 3.94081 1.55 132.10ns
merge_with 40.57ns 42.988 0.94 337.75ns

publish_subject callbacks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
on_next 20.26ns 17.1905 1.18 10.90ns
on_error 0.81ns 1.34374 0.60 16.14ns
on_completed 1.21ns 1.34289 0.90 0.80ns

publish_subject routines

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
construct 120.42ns 122.409 0.98 160.22ns
get_observable 5.80ns 5.74911 1.01 44.38ns
get_subscriber 17.38ns 11.6252 1.49 23.15ns

Windows MSVC

Observable construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable construction 2.91ns 1.50716 1.93 0.75ns
Dynamic observable construction 143.34ns 81.6742 1.75 143.19ns
Specific observable construction + as_dynamic 105.48ns 82.0548 1.29 148.64ns

Observable lift

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable lift specific observer 154.73ns 137.011 1.13 1392.42ns
Specific observable lift dynamic observer 210.19ns 168.934 1.24 1474.74ns
Dynamic observable lift specific observer 303.99ns 265.082 1.15 1636.47ns
Dynamic observable lift dynamic observer 261.16ns 220.888 1.18 1493.95ns

Observable subscribe

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe specific observer 122.09ns 104.514 1.17 1349.05ns
Specific observable subscribe dynamic observer 134.22ns 117.922 1.14 1391.95ns
Dynamic observable subscribe specific observer 241.38ns 218.263 1.11 1554.33ns
Dynamic observable subscribe dynamic observer 190.42ns 162.196 1.17 1477.63ns

Observable subscribe #2

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe lambda 132.82ns 105.333 1.26 1343.11ns
Dynamic observable subscribe lambda 243.79ns 216.381 1.13 1540.83ns
Specific observable subscribe lambda without subscription 117.53ns 104.686 1.12 1625.43ns
Dynamic observable subscribe lambda without subscription 302.16ns 216.872 1.39 1600.17ns
Specific observable subscribe specific subscriber 19.38ns 16.7729 1.16 963.26ns
Dynamic observable subscribe specific subscriber 144.21ns 131.764 1.09 1167.61ns
Specific observable subscribe dynamic observer 27.84ns 16.832 1.65 1007.26ns
Dynamic observable subscribe dynamic observer 73.19ns 64.8535 1.13 1034.41ns

Observer construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer construction 0.89ns 0.714014 1.24 1.99ns
Dynamic observer construction 91.62ns 81.5605 1.12 151.07ns
Specific observer construction + as_dynamic 90.54ns 82.131 1.10 129.29ns

OnNext

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer OnNext 0.74ns 0.671345 1.11 0.74ns
Dynamic observer OnNext 2.26ns 2.01182 1.13 2.61ns

Operators

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
map construction from observable via dot + subscribe 83.60ns 77.7825 1.07 1149.00ns

Subscriber construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Make subsriber 99.26ns 87.131 1.14 405.55ns
Make copy of subscriber 16.77ns 17.0171 0.99 36.43ns
Transform subsriber to dynamic 111.31ns 96.4922 1.15 170.29ns

Subscription

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
composite_subscription create 102.51ns 86.5306 1.18 388.31ns
composite_subscription add 71.59ns 64.441 1.11 72.71ns
composite_subscription unsubscribe 7.75ns 8.38172 0.92 26.55ns

foundamental sources

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
empty 17.00ns 16.8314 1.01 617.54ns
error 55.64ns 47.6414 1.17 271.96ns
never 19.34ns 16.7564 1.15 1147.14ns

from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
from vector with int 94.12ns 84.0392 1.12 307.01ns

just

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
just send int 22.96ns 19.8329 1.16 224.33ns
just send variadic 24.30ns 20.6134 1.18 226.91ns

merge

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
merge 37.42ns 35.0025 1.07 790.32ns
merge_with 341.33ns 299.723 1.14 1684.29ns

publish_subject callbacks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
on_next 23.38ns 23.2935 1.00 35.08ns
on_error 2.26ns 2.37252 0.95 22.09ns
on_completed 2.73ns 2.48634 1.10 0.77ns

publish_subject routines

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
construct 357.66ns 289.063 1.24 902.20ns
get_observable 32.38ns 25.9313 1.25 177.01ns
get_subscriber 60.34ns 50.3012 1.20 108.70ns

@AlexInLog AlexInLog reopened this Jul 16, 2022
@codecov

codecov Bot commented Jul 16, 2022

Copy link
Copy Markdown

Codecov Report

Merging #179 (f6ca21a) into main (5444163) will increase coverage by 0.01%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main     #179      +/-   ##
==========================================
+ Coverage   99.67%   99.69%   +0.01%     
==========================================
  Files          70       72       +2     
  Lines         932      975      +43     
==========================================
+ Hits          929      972      +43     
  Misses          3        3              
Impacted Files Coverage Δ
src/rpp/rpp/observables/interface_observable.hpp 100.00% <ø> (ø)
src/rpp/rpp/operators/concat.hpp 100.00% <100.00%> (ø)
src/rpp/rpp/operators/fwd/concat.hpp 100.00% <100.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 5444163...f6ca21a. Read the comment docs.

@sonarqubecloud

Copy link
Copy Markdown

Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 2 Code Smells

0.0% 0.0% Coverage
0.0% 0.0% Duplication

@AlexInLog
AlexInLog merged commit 28d7797 into main Jul 18, 2022
@AlexInLog
AlexInLog deleted the concat branch July 18, 2022 07:17
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