Skip to content

Distinct until changed - #186

Merged
AlexInLog merged 4 commits into
mainfrom
distinct_until_changed
Jul 25, 2022
Merged

Distinct until changed#186
AlexInLog merged 4 commits into
mainfrom
distinct_until_changed

Conversation

@AlexInLog

Copy link
Copy Markdown
Owner

No description provided.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ clang-tidy found issue(s) with the introduced code (1/1)

Comment thread src/tests/test_distinct_until_changed.cpp
Comment thread src/tests/test_distinct_until_changed.cpp
Comment thread src/tests/test_distinct_until_changed.cpp
Comment thread src/tests/test_distinct_until_changed.cpp
@codecov

codecov Bot commented Jul 25, 2022

Copy link
Copy Markdown

Codecov Report

Merging #186 (fe7b45a) into main (a2cfc22) will increase coverage by 0.00%.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##             main     #186   +/-   ##
=======================================
  Coverage   99.69%   99.70%           
=======================================
  Files          75       77    +2     
  Lines         994     1007   +13     
=======================================
+ Hits          991     1004   +13     
  Misses          3        3           
Impacted Files Coverage Δ
src/rpp/rpp/observables/interface_observable.hpp 100.00% <ø> (ø)
src/rpp/rpp/operators/distinct_until_changed.hpp 100.00% <100.00%> (ø)
...c/rpp/rpp/operators/fwd/distinct_until_changed.hpp 100.00% <100.00%> (ø)
src/rpp/rpp/operators/with_latest_from.hpp 100.00% <100.00%> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us.

@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 4 Code Smells

0.0% 0.0% Coverage
0.0% 0.0% Duplication

@github-actions

github-actions Bot commented Jul 25, 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.334676 1.20 0.40ns
Dynamic observable construction 28.79ns 29.2822 0.98 25.33ns
Specific observable construction + as_dynamic 28.57ns 29.2152 0.98 25.36ns

Observable lift

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable lift specific observer 78.28ns 70.9327 1.10 286.03ns
Specific observable lift dynamic observer 105.44ns 94.6675 1.11 316.03ns
Dynamic observable lift specific observer 159.82ns 157.589 1.01 341.56ns
Dynamic observable lift dynamic observer 179.25ns 164.691 1.09 326.39ns

Observable subscribe

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe specific observer 48.78ns 45.2547 1.08 289.34ns
Specific observable subscribe dynamic observer 61.25ns 58.3261 1.05 296.41ns
Dynamic observable subscribe specific observer 111.71ns 112.182 1.00 333.00ns
Dynamic observable subscribe dynamic observer 114.48ns 109.502 1.05 318.27ns

Observable subscribe #2

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe lambda 48.76ns 45.1308 1.08 290.30ns
Dynamic observable subscribe lambda 110.94ns 109.79 1.01 333.70ns
Specific observable subscribe lambda without subscription 48.76ns 45.2346 1.08 280.56ns
Dynamic observable subscribe lambda without subscription 111.28ns 109.702 1.01 336.25ns
Specific observable subscribe specific subscriber 16.10ns 16.72 0.96 218.06ns
Dynamic observable subscribe specific subscriber 78.40ns 78.6646 1.00 266.82ns
Specific observable subscribe dynamic observer 16.04ns 16.7341 0.96 236.98ns
Dynamic observable subscribe dynamic observer 68.24ns 63.276 1.08 256.50ns

Observer construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer construction 0.40ns 0.67014 0.60 0.40ns
Dynamic observer construction 32.33ns 29.1348 1.11 19.67ns
Specific observer construction + as_dynamic 31.46ns 29.1262 1.08 19.71ns

OnNext

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer OnNext 0.44ns 0.669477 0.66 0.44ns
Dynamic observer OnNext 1.66ns 1.67508 0.99 1.60ns

Operators

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
map construction from observable via dot + subscribe 76.07ns 71.199 1.07 241.05ns

Subscriber construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Make subsriber 32.70ns 32.4714 1.01 66.91ns
Make copy of subscriber 16.08ns 16.7224 0.96 5.09ns
Transform subsriber to dynamic 47.42ns 46.637 1.02 25.46ns

Subscription

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
composite_subscription create 34.06ns 31.4917 1.08 48.51ns
composite_subscription add 48.70ns 45.3941 1.07 20.88ns
composite_subscription unsubscribe 8.05ns 6.02106 1.34 13.66ns

foundamental sources

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
empty 16.07ns 16.7561 0.96 31.46ns
error 48.23ns 49.267 0.98 73.04ns
never 16.09ns 16.7465 0.96 228.12ns

from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
from vector with int 25.81ns 27.8297 0.93 54.13ns

just

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
just send int 16.10ns 16.7397 0.96 31.41ns
just send variadic 18.94ns 16.7844 1.13 39.13ns

merge

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
merge 16.82ns 17.4012 0.97 129.85ns
merge_with 77.73ns 79.2692 0.98 294.58ns

publish_subject callbacks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
on_next 29.43ns 24.3934 1.21 8.89ns
on_error 2.02ns 2.07482 0.98 18.99ns
on_completed 1.74ns 2.01803 0.86 0.80ns

publish_subject routines

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
construct 166.13ns 171.489 0.97 153.93ns
get_observable 33.82ns 29.0727 1.16 45.89ns
get_subscriber 67.37ns 62.295 1.08 13.23ns

Linux GCC

Observable construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable construction 0.32ns 0.310112 1.05 0.36ns
Dynamic observable construction 20.31ns 18.6252 1.09 38.10ns
Specific observable construction + as_dynamic 20.42ns 19.4265 1.05 40.32ns

Observable lift

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable lift specific observer 31.27ns 31.3646 1.00 408.50ns
Specific observable lift dynamic observer 29.76ns 30.886 0.96 405.10ns
Dynamic observable lift specific observer 76.75ns 82.9743 0.92 488.78ns
Dynamic observable lift dynamic observer 78.15ns 77.5147 1.01 404.26ns

Observable subscribe

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe specific observer 22.54ns 19.2907 1.17 346.69ns
Specific observable subscribe dynamic observer 21.82ns 20.2148 1.08 382.39ns
Dynamic observable subscribe specific observer 55.38ns 51.6359 1.07 568.82ns
Dynamic observable subscribe dynamic observer 46.14ns 41.4309 1.11 398.31ns

Observable subscribe #2

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe lambda 21.22ns 21.2073 1.00 339.22ns
Dynamic observable subscribe lambda 55.92ns 55.6153 1.01 388.35ns
Specific observable subscribe lambda without subscription 20.85ns 23.2569 0.90 362.84ns
Dynamic observable subscribe lambda without subscription 51.57ns 45.4033 1.14 586.94ns
Specific observable subscribe specific subscriber 7.03ns 4.60617 1.53 306.17ns
Dynamic observable subscribe specific subscriber 30.60ns 25.162 1.22 402.66ns
Specific observable subscribe dynamic observer 4.75ns 4.54387 1.04 337.62ns
Dynamic observable subscribe dynamic observer 18.70ns 15.0176 1.25 370.05ns

Observer construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer construction 0.52ns 0.313996 1.66 0.33ns
Dynamic observer construction 20.19ns 16.4678 1.23 19.64ns
Specific observer construction + as_dynamic 18.16ns 18.0016 1.01 21.18ns

OnNext

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer OnNext 0.35ns 0.334915 1.05 0.37ns
Dynamic observer OnNext 1.97ns 2.17227 0.91 1.95ns

Operators

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
map construction from observable via dot + subscribe 16.74ns 17.2429 0.97 373.68ns

Subscriber construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Make subsriber 20.52ns 18.8035 1.09 64.87ns
Make copy of subscriber 4.56ns 5.00234 0.91 5.60ns
Transform subsriber to dynamic 31.67ns 20.3684 1.55 30.13ns

Subscription

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
composite_subscription create 26.64ns 21.767 1.22 58.89ns
composite_subscription add 31.94ns 33.7908 0.95 17.60ns
composite_subscription unsubscribe 6.60ns 6.16642 1.07 11.70ns

foundamental sources

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
empty 4.33ns 4.51043 0.96 47.31ns
error 34.63ns 36.2612 0.95 94.44ns
never 4.13ns 4.20805 0.98 317.17ns

from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
from vector with int 19.91ns 20.1439 0.99 66.77ns

just

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
just send int 4.87ns 4.01005 1.21 52.71ns
just send variadic 4.99ns 5.74183 0.87 81.85ns

merge

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
merge 4.00ns 4.24793 0.94 160.43ns
merge_with 43.12ns 51.8064 0.83 440.58ns

publish_subject callbacks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
on_next 17.06ns 20.0646 0.85 11.96ns
on_error 0.65ns 0.697563 0.93 19.20ns
on_completed 1.15ns 0.615386 1.88 0.70ns

publish_subject routines

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
construct 115.75ns 107.496 1.08 176.55ns
get_observable 6.49ns 5.76049 1.13 48.26ns
get_subscriber 14.37ns 12.7127 1.13 25.25ns

Windows MSVC

Observable construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable construction 1.99ns 1.84133 1.08 0.79ns
Dynamic observable construction 96.06ns 97.9527 0.98 168.78ns
Specific observable construction + as_dynamic 103.02ns 97.8966 1.05 167.10ns

Observable lift

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable lift specific observer 166.09ns 164.811 1.01 1534.95ns
Specific observable lift dynamic observer 193.30ns 199.441 0.97 1534.50ns
Dynamic observable lift specific observer 323.90ns 321.01 1.01 1702.72ns
Dynamic observable lift dynamic observer 275.68ns 266.025 1.04 1683.37ns

Observable subscribe

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe specific observer 128.99ns 124.66 1.03 1608.10ns
Specific observable subscribe dynamic observer 200.45ns 137.897 1.45 1579.43ns
Dynamic observable subscribe specific observer 278.30ns 261.42 1.06 1835.39ns
Dynamic observable subscribe dynamic observer 216.95ns 195.7 1.11 1523.85ns

Observable subscribe #2

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe lambda 226.12ns 127.889 1.77 1475.19ns
Dynamic observable subscribe lambda 278.69ns 263.189 1.06 1706.11ns
Specific observable subscribe lambda without subscription 132.34ns 127.456 1.04 1427.60ns
Dynamic observable subscribe lambda without subscription 258.76ns 232.842 1.11 1677.74ns
Specific observable subscribe specific subscriber 20.17ns 20.1281 1.00 1048.55ns
Dynamic observable subscribe specific subscriber 147.40ns 157.67 0.93 1290.46ns
Specific observable subscribe dynamic observer 22.46ns 18.2427 1.23 1151.77ns
Dynamic observable subscribe dynamic observer 78.68ns 77.4694 1.02 1191.11ns

Observer construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer construction 0.83ns 0.807255 1.03 2.01ns
Dynamic observer construction 103.90ns 104.706 0.99 133.76ns
Specific observer construction + as_dynamic 101.49ns 97.7636 1.04 153.43ns

OnNext

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer OnNext 0.81ns 0.839519 0.96 0.80ns
Dynamic observer OnNext 2.56ns 2.21024 1.16 2.96ns

Operators

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
map construction from observable via dot + subscribe 89.31ns 90.9606 0.98 1227.46ns

Subscriber construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Make subsriber 117.11ns 104.874 1.12 415.12ns
Make copy of subscriber 18.46ns 20.2712 0.91 40.05ns
Transform subsriber to dynamic 120.41ns 110.384 1.09 190.49ns

Subscription

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
composite_subscription create 163.99ns 104.807 1.56 429.01ns
composite_subscription add 79.54ns 79.9786 0.99 79.72ns
composite_subscription unsubscribe 8.45ns 10.0532 0.84 29.59ns

foundamental sources

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
empty 22.17ns 20.025 1.11 242.03ns
error 57.92ns 55.9609 1.03 290.69ns
never 20.10ns 20.1397 1.00 1157.72ns

from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
from vector with int 106.66ns 96.9191 1.10 332.32ns

just

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
just send int 24.87ns 23.0727 1.08 236.33ns
just send variadic 25.54ns 24.9647 1.02 216.37ns

merge

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
merge 41.24ns 40.9714 1.01 1118.78ns
merge_with 409.66ns 357.32 1.15 1945.52ns

publish_subject callbacks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
on_next 25.82ns 23.8021 1.08 37.67ns
on_error 2.40ns 2.83168 0.85 22.89ns
on_completed 3.17ns 3.10029 1.02 0.82ns

publish_subject routines

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
construct 364.77ns 327.111 1.12 1732.10ns
get_observable 38.07ns 31.003 1.23 196.97ns
get_subscriber 63.67ns 59.8566 1.06 176.02ns

@AlexInLog
AlexInLog merged commit 328c691 into main Jul 25, 2022
@AlexInLog
AlexInLog deleted the distinct_until_changed branch July 25, 2022 09:10
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