Skip to content

Fix group_by crash#196

Merged
AlexInLog merged 1 commit into
mainfrom
fix_group_by
Jul 28, 2022
Merged

Fix group_by crash#196
AlexInLog merged 1 commit into
mainfrom
fix_group_by

Conversation

@AlexInLog

Copy link
Copy Markdown
Owner

Resolves #195

@codecov

codecov Bot commented Jul 28, 2022

Copy link
Copy Markdown

Codecov Report

Merging #196 (bf16594) into main (f4ac15e) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #196   +/-   ##
=======================================
  Coverage   99.70%   99.70%           
=======================================
  Files          79       79           
  Lines        1017     1017           
=======================================
  Hits         1014     1014           
  Misses          3        3           
Impacted Files Coverage Δ
src/rpp/rpp/operators/fwd/group_by.hpp 100.00% <ø> (ø)
src/rpp/rpp/operators/group_by.hpp 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 0 Code Smells

0.0% 0.0% Coverage
0.0% 0.0% Duplication

@github-actions

Copy link
Copy Markdown
Contributor

Linux CLANG

Observable construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable construction 0.42ns 0.335352 1.25 0.42ns
Dynamic observable construction 36.45ns 29.1446 1.25 30.19ns
Specific observable construction + as_dynamic 36.48ns 29.1583 1.25 30.20ns

Observable lift

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable lift specific observer 88.78ns 71.0109 1.25 363.03ns
Specific observable lift dynamic observer 118.50ns 94.6169 1.25 386.58ns
Dynamic observable lift specific observer 198.04ns 157.981 1.25 416.50ns
Dynamic observable lift dynamic observer 204.40ns 163.715 1.25 403.97ns

Observable subscribe

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe specific observer 56.54ns 45.1506 1.25 361.68ns
Specific observable subscribe dynamic observer 72.85ns 58.2054 1.25 396.49ns
Dynamic observable subscribe specific observer 140.36ns 112.328 1.25 409.55ns
Dynamic observable subscribe dynamic observer 137.09ns 109.25 1.25 394.17ns

Observable subscribe #2

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe lambda 60.72ns 48.6035 1.25 363.04ns
Dynamic observable subscribe lambda 143.74ns 115.039 1.25 409.77ns
Specific observable subscribe lambda without subscription 60.94ns 48.4922 1.26 361.24ns
Dynamic observable subscribe lambda without subscription 143.72ns 115.044 1.25 405.50ns
Specific observable subscribe specific subscriber 20.95ns 16.7497 1.25 284.44ns
Dynamic observable subscribe specific subscriber 98.60ns 78.7086 1.25 333.71ns
Specific observable subscribe dynamic observer 20.94ns 16.7426 1.25 325.27ns
Dynamic observable subscribe dynamic observer 79.15ns 63.5061 1.25 329.52ns

Observer construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer construction 0.84ns 0.670098 1.25 0.42ns
Dynamic observer construction 36.46ns 29.1601 1.25 27.03ns
Specific observer construction + as_dynamic 36.43ns 29.0953 1.25 27.45ns

OnNext

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer OnNext 0.84ns 0.670779 1.25 0.84ns
Dynamic observer OnNext 2.10ns 1.67678 1.25 3.33ns

Subscriber construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Make subsriber 45.76ns 36.435 1.26 82.54ns
Make copy of subscriber 20.94ns 16.7224 1.25 5.87ns
Transform subsriber to dynamic 58.19ns 46.4759 1.25 34.02ns

Subscription

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
composite_subscription create 45.64ns 36.5423 1.25 67.23ns
composite_subscription add 57.14ns 45.7461 1.25 25.71ns
composite_subscription unsubscribe 7.53ns 6.04256 1.25 12.18ns

concat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
concat 21.74ns 17.4017 1.25 155.96ns
concat_with 98.92ns 79.1969 1.25 370.27ns

distinct_until_changed

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
distinct_until_changed construction from observable via dot + subscribe 148.63ns 118.82 1.25 315.78ns
sending of values from observable via distinct_until_changed to subscriber 4.25ns 3.3562 1.27 2.93ns

foundamental sources

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
empty 20.97ns 16.7731 1.25 45.52ns
error 61.71ns 49.2854 1.25 97.48ns
never 20.93ns 16.7509 1.25 291.40ns

from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
from vector with int 35.23ns 27.9061 1.26 74.66ns

just

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
just send int 20.99ns 16.7836 1.25 46.00ns
just send variadic 20.97ns 16.7602 1.25 53.72ns

map

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
map construction from observable via dot + subscribe 88.79ns 70.8594 1.25 305.33ns
sending of values from observable via map to subscriber 9.20ns 7.37351 1.25 1.90ns

merge

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
merge 21.87ns 17.4354 1.25 154.32ns
merge_with 99.44ns 79.2824 1.25 370.45ns

observe_on

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
observe_on construction from observable via dot + subscribe 924.16ns 734.703 1.26 3190.33ns
sending of values from observable via observe_on to subscriber 174.30ns 139.62 1.25 249.80ns

publish_subject callbacks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
on_next 30.57ns 24.4373 1.25 11.71ns
on_error 2.11ns 1.68565 1.25 23.95ns
on_completed 3.37ns 2.6997 1.25 0.84ns

publish_subject routines

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
construct 208.89ns 172.255 1.21 224.56ns
get_observable 36.41ns 29.13 1.25 62.11ns
get_subscriber 77.91ns 62.2673 1.25 17.76ns

repeat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
repeat construction from observable via dot + subscribe 59.64ns 47.2215 1.26 12.78ns

scan

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
scan construction from observable via dot + subscribe 139.08ns 111.182 1.25 372.40ns
sending of values from observable via scan to subscriber 7.66ns 6.04186 1.27 2.51ns

switch_on_next

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
switch_on_next construction from observable via dot + subscribe 2017.05ns 1556.53 1.30 3480.06ns
sending of values from observable via switch_on_next to subscriber 518.81ns 409.806 1.27 811.33ns

with_latest_from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
with_latest_from construction from observable via dot + subscribe 826.11ns 663.366 1.25 1358.92ns
sending of values from observable via with_latest_from to subscriber 30.15ns 24.0941 1.25 3.77ns

Linux GCC

Observable construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable construction 0.40ns 1.00922 0.40 0.40ns
Dynamic observable construction 29.02ns 95.4079 0.30 21.85ns
Specific observable construction + as_dynamic 28.89ns 95.2156 0.30 22.39ns

Observable lift

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable lift specific observer 93.43ns 88.9691 1.05 337.10ns
Specific observable lift dynamic observer 124.70ns 119.516 1.04 353.65ns
Dynamic observable lift specific observer 176.06ns 170.447 1.03 400.11ns
Dynamic observable lift dynamic observer 199.06ns 185.352 1.07 370.63ns

Observable subscribe

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe specific observer 49.80ns 47.2259 1.05 329.96ns
Specific observable subscribe dynamic observer 63.52ns 60.5479 1.05 335.28ns
Dynamic observable subscribe specific observer 125.81ns 123.318 1.02 377.50ns
Dynamic observable subscribe dynamic observer 126.39ns 121.336 1.04 348.16ns

Observable subscribe #2

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe lambda 49.99ns 145.963 0.34 328.60ns
Dynamic observable subscribe lambda 127.36ns 371.862 0.34 373.94ns
Specific observable subscribe lambda without subscription 49.80ns 145.932 0.34 327.71ns
Dynamic observable subscribe lambda without subscription 127.92ns 371.654 0.34 381.56ns
Specific observable subscribe specific subscriber 16.07ns 50.3885 0.32 271.18ns
Dynamic observable subscribe specific subscriber 83.99ns 249.713 0.34 320.73ns
Specific observable subscribe dynamic observer 16.07ns 50.3079 0.32 280.73ns
Dynamic observable subscribe dynamic observer 70.75ns 205.848 0.34 293.11ns

Observer construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer construction 0.43ns 1.00773 0.42 0.40ns
Dynamic observer construction 28.92ns 94.7546 0.31 18.40ns
Specific observer construction + as_dynamic 32.57ns 94.604 0.34 18.46ns

OnNext

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer OnNext 0.43ns 1.01002 0.43 0.43ns
Dynamic observer OnNext 2.01ns 6.04244 0.33 1.61ns

Subscriber construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Make subsriber 41.98ns 112.936 0.37 54.88ns
Make copy of subscriber 16.07ns 50.4125 0.32 5.69ns
Transform subsriber to dynamic 48.03ns 44.8066 1.07 23.16ns

Subscription

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
composite_subscription create 34.17ns 30.9072 1.11 51.89ns
composite_subscription add 46.97ns 42.3829 1.11 14.91ns
composite_subscription unsubscribe 8.05ns 8.35533 0.96 13.64ns

concat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
concat 19.69ns 17.3051 1.14 129.97ns
concat_with 89.77ns 83.0683 1.08 326.20ns

distinct_until_changed

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
distinct_until_changed construction from observable via dot + subscribe 127.55ns 141.518 0.90 353.71ns
sending of values from observable via distinct_until_changed to subscriber 4.42ns 5.66719 0.78 1.21ns

foundamental sources

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
empty 16.09ns 16.7256 0.96 44.99ns
error 48.88ns 49.1642 0.99 83.46ns
never 16.08ns 16.7175 0.96 268.67ns

from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
from vector with int 28.32ns 29.7817 0.95 62.21ns

just

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
just send int 16.12ns 16.7414 0.96 51.27ns
just send variadic 18.94ns 16.7383 1.13 46.58ns

map

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
map construction from observable via dot + subscribe 76.50ns 72.2471 1.06 342.65ns
sending of values from observable via map to subscriber 3.62ns 4.34993 0.83 1.61ns

merge

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
merge 16.78ns 16.9669 0.99 132.07ns
merge_with 88.48ns 83.4264 1.06 325.16ns

observe_on

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
observe_on construction from observable via dot + subscribe 835.23ns 809.634 1.03 2706.83ns
sending of values from observable via observe_on to subscriber 163.53ns 148.905 1.10 225.36ns

publish_subject callbacks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
on_next 29.66ns 23.4226 1.27 10.43ns
on_error 2.24ns 3.02321 0.74 16.15ns
on_completed 2.02ns 2.6812 0.75 0.81ns

publish_subject routines

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
construct 171.62ns 186.934 0.92 153.38ns
get_observable 33.52ns 29.5425 1.13 42.83ns
get_subscriber 64.98ns 60.5544 1.07 14.21ns

repeat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
repeat construction from observable via dot + subscribe 50.44ns 44.8333 1.12 25.56ns

scan

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
scan construction from observable via dot + subscribe 119.79ns 130.341 0.92 388.90ns
sending of values from observable via scan to subscriber 3.61ns 4.34889 0.83 1.61ns

switch_on_next

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
switch_on_next construction from observable via dot + subscribe 1727.00ns 1654.02 1.04 4725.35ns
sending of values from observable via switch_on_next to subscriber 448.80ns 430.574 1.04 1152.62ns

with_latest_from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
with_latest_from construction from observable via dot + subscribe 727.74ns 755.452 0.96 1454.38ns
sending of values from observable via with_latest_from to subscriber 25.94ns 25.7555 1.01 4.02ns

Windows MSVC

Observable construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable construction 1.90ns 1.50689 1.26 0.74ns
Dynamic observable construction 92.24ns 81.6752 1.13 135.79ns
Specific observable construction + as_dynamic 93.13ns 82.4084 1.13 141.07ns

Observable lift

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable lift specific observer 161.15ns 137.201 1.17 1203.25ns
Specific observable lift dynamic observer 187.87ns 168.96 1.11 1472.15ns
Dynamic observable lift specific observer 283.70ns 264.5 1.07 1591.71ns
Dynamic observable lift dynamic observer 260.59ns 234.439 1.11 1516.78ns

Observable subscribe

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe specific observer 103.72ns 103.61 1.00 1240.00ns
Specific observable subscribe dynamic observer 138.25ns 119.421 1.16 1396.76ns
Dynamic observable subscribe specific observer 230.53ns 216.863 1.06 1615.59ns
Dynamic observable subscribe dynamic observer 197.19ns 161.214 1.22 1410.05ns

Observable subscribe #2

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe lambda 105.04ns 102.308 1.03 1348.33ns
Dynamic observable subscribe lambda 228.03ns 216.568 1.05 1535.33ns
Specific observable subscribe lambda without subscription 123.97ns 118.714 1.04 1330.50ns
Dynamic observable subscribe lambda without subscription 259.61ns 215.37 1.21 1473.00ns
Specific observable subscribe specific subscriber 18.28ns 16.7602 1.09 994.48ns
Dynamic observable subscribe specific subscriber 145.45ns 132.062 1.10 1275.09ns
Specific observable subscribe dynamic observer 20.93ns 16.7262 1.25 963.68ns
Dynamic observable subscribe dynamic observer 64.73ns 64.2298 1.01 1087.77ns

Observer construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer construction 0.75ns 0.669938 1.13 2.00ns
Dynamic observer construction 89.73ns 92.5241 0.97 132.53ns
Specific observer construction + as_dynamic 99.72ns 81.6194 1.22 132.65ns

OnNext

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer OnNext 0.78ns 0.674416 1.16 0.74ns
Dynamic observer OnNext 1.94ns 2.02015 0.96 2.22ns

Subscriber construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Make subsriber 101.31ns 88.1972 1.15 362.36ns
Make copy of subscriber 17.41ns 16.7854 1.04 37.90ns
Transform subsriber to dynamic 108.72ns 96.6364 1.13 154.96ns

Subscription

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
composite_subscription create 100.43ns 87.4379 1.15 372.72ns
composite_subscription add 124.79ns 65.5891 1.90 64.48ns
composite_subscription unsubscribe 7.16ns 8.39154 0.85 35.39ns

concat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
concat 37.62ns 35.0178 1.07 762.29ns
concat_with 359.20ns 331.876 1.08 1505.62ns

distinct_until_changed

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
distinct_until_changed construction from observable via dot + subscribe 218.41ns 197.532 1.11 1122.54ns
sending of values from observable via distinct_until_changed to subscriber 4.74ns 4.42932 1.07 3.82ns

foundamental sources

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
empty 17.37ns 16.7823 1.04 198.19ns
error 53.50ns 47.4638 1.13 222.03ns
never 19.00ns 16.8115 1.13 912.39ns

from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
from vector with int 97.96ns 92.1071 1.06 324.61ns

just

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
just send int 23.64ns 19.7869 1.19 215.13ns
just send variadic 24.47ns 20.5364 1.19 251.69ns

map

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
map construction from observable via dot + subscribe 83.27ns 76.9482 1.08 1158.08ns
sending of values from observable via map to subscriber 7.34ns 6.27743 1.17 6.89ns

merge

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
merge 34.80ns 35.2516 0.99 821.32ns
merge_with 364.29ns 313.784 1.16 1624.70ns

observe_on

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
observe_on construction from observable via dot + subscribe 1098.04ns 958.84 1.15 6356.40ns
sending of values from observable via observe_on to subscriber 164.42ns 147.091 1.12 838.56ns

publish_subject callbacks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
on_next 24.72ns 20.1787 1.23 33.72ns
on_error 2.47ns 2.84247 0.87 20.29ns
on_completed 2.20ns 2.37898 0.92 0.71ns

publish_subject routines

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
construct 408.93ns 294.017 1.39 754.04ns
get_observable 33.03ns 25.8425 1.28 204.58ns
get_subscriber 71.52ns 50.5257 1.42 114.32ns

repeat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
repeat construction from observable via dot + subscribe 122.79ns 115.433 1.06 102.72ns

scan

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
scan construction from observable via dot + subscribe 180.36ns 169.96 1.06 1476.00ns
sending of values from observable via scan to subscriber 8.24ns 7.25187 1.14 9.51ns

switch_on_next

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
switch_on_next construction from observable via dot + subscribe 5351.00ns 3275.0 1.63 13449.00ns
sending of values from observable via switch_on_next to subscriber 782.50ns 827.25 0.95 3129.67ns

with_latest_from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
with_latest_from construction from observable via dot + subscribe 1314.29ns 1070.52 1.23 4257.00ns
sending of values from observable via with_latest_from to subscriber 27.90ns 31.4453 0.89 8.84ns

@AlexInLog AlexInLog merged commit 20ec8be into main Jul 28, 2022
@AlexInLog AlexInLog deleted the fix_group_by branch July 28, 2022 21:18
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.

Group-by test fails in debug mode

1 participant