Skip to content

Add -fsized_deallocation for developers using gc++#200

Merged
AlexInLog merged 1 commit into
AlexInLog:mainfrom
tcw165:op/trampoline
Aug 1, 2022
Merged

Add -fsized_deallocation for developers using gc++#200
AlexInLog merged 1 commit into
AlexInLog:mainfrom
tcw165:op/trampoline

Conversation

@tcw165

@tcw165 tcw165 commented Aug 1, 2022

Copy link
Copy Markdown
Contributor

No description provided.

@codecov

codecov Bot commented Aug 1, 2022

Copy link
Copy Markdown

Codecov Report

Merging #200 (d41005a) into main (5beacd8) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #200   +/-   ##
=======================================
  Coverage   99.62%   99.62%           
=======================================
  Files          83       83           
  Lines        1072     1072           
=======================================
  Hits         1068     1068           
  Misses          4        4           

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

@github-actions

github-actions Bot commented Aug 1, 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.34ns 0.357597 0.94 0.34ns
Dynamic observable construction 29.13ns 33.9721 0.86 24.11ns
Specific observable construction + as_dynamic 29.18ns 33.3388 0.88 24.17ns

Observable lift

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable lift specific observer 71.01ns 82.9015 0.86 288.38ns
Specific observable lift dynamic observer 94.74ns 109.525 0.87 310.46ns
Dynamic observable lift specific observer 158.41ns 179.6 0.88 332.33ns
Dynamic observable lift dynamic observer 163.38ns 189.438 0.86 325.83ns

Observable subscribe

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe specific observer 45.13ns 50.4634 0.89 285.69ns
Specific observable subscribe dynamic observer 58.34ns 66.6384 0.88 297.99ns
Dynamic observable subscribe specific observer 112.30ns 123.807 0.91 327.38ns
Dynamic observable subscribe dynamic observer 109.45ns 119.427 0.92 321.08ns

Observable subscribe #2

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe lambda 44.55ns 51.4124 0.87 285.37ns
Dynamic observable subscribe lambda 111.14ns 126.227 0.88 324.22ns
Specific observable subscribe lambda without subscription 44.55ns 52.026 0.86 287.67ns
Dynamic observable subscribe lambda without subscription 111.02ns 123.66 0.90 325.46ns
Specific observable subscribe specific subscriber 16.75ns 19.272 0.87 223.69ns
Dynamic observable subscribe specific subscriber 78.77ns 77.4829 1.02 266.05ns
Specific observable subscribe dynamic observer 16.75ns 17.1013 0.98 235.78ns
Dynamic observable subscribe dynamic observer 63.34ns 76.1662 0.83 258.31ns

Observer construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer construction 0.67ns 0.781333 0.86 0.34ns
Dynamic observer construction 29.17ns 30.454 0.96 21.97ns
Specific observer construction + as_dynamic 29.09ns 32.0116 0.91 21.04ns

OnNext

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer OnNext 0.67ns 0.735397 0.91 0.67ns
Dynamic observer OnNext 1.68ns 1.99326 0.84 2.68ns

Subscriber construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Make subsriber 32.44ns 36.1537 0.90 64.55ns
Make copy of subscriber 16.73ns 19.5064 0.86 5.11ns
Transform subsriber to dynamic 46.58ns 50.3087 0.93 27.20ns

Subscription

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
composite_subscription create 32.45ns 37.8105 0.86 52.71ns
composite_subscription add 45.33ns 48.7898 0.93 20.59ns
composite_subscription unsubscribe 6.04ns 7.1701 0.84 9.71ns

buffer

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
buffer 16.88ns 19.1755 0.88 43.97ns
sending of values from observable via buffer to subscriber 8.92ns 9.59644 0.93 27.61ns

concat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
concat 17.39ns 17.2147 1.01 123.04ns
concat_with 79.11ns 84.3268 0.94 299.30ns

distinct_until_changed

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
distinct_until_changed construction from observable via dot + subscribe 118.68ns 125.074 0.95 252.32ns
sending of values from observable via distinct_until_changed to subscriber 3.35ns 4.11368 0.81 2.35ns

foundamental sources

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
empty 16.73ns 17.9073 0.93 36.04ns
error 49.31ns 59.5595 0.83 77.59ns
never 16.71ns 19.149 0.87 239.11ns

from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
from vector with int 27.84ns 31.2312 0.89 58.95ns

just

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
just send int 16.78ns 20.3721 0.82 35.69ns
just send variadic 16.75ns 18.2269 0.92 43.50ns

map

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
map construction from observable via dot + subscribe 71.02ns 84.1261 0.84 243.40ns
sending of values from observable via map to subscriber 7.37ns 8.44663 0.87 1.51ns

merge

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
merge 17.37ns 20.1667 0.86 123.81ns
merge_with 79.30ns 83.6567 0.95 302.91ns

observe_on

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
observe_on construction from observable via dot + subscribe 739.62ns 858.808 0.86 2592.92ns
sending of values from observable via observe_on to subscriber 140.49ns 161.41 0.87 202.52ns

publish_subject callbacks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
on_next 24.48ns 27.0509 0.91 9.88ns
on_error 1.68ns 1.831 0.92 19.16ns
on_completed 2.69ns 3.12626 0.86 0.67ns

publish_subject routines

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
construct 176.51ns 196.353 0.90 176.92ns
get_observable 29.09ns 32.6518 0.89 50.57ns
get_subscriber 62.26ns 70.1255 0.89 13.97ns

repeat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
repeat construction from observable via dot + subscribe 18.47ns 21.6647 0.85 10.25ns

scan

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
scan construction from observable via dot + subscribe 111.02ns 127.314 0.87 298.65ns
sending of values from observable via scan to subscriber 6.10ns 7.00089 0.87 2.01ns

switch_on_next

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
switch_on_next construction from observable via dot + subscribe 1553.02ns 1941.13 0.80 2793.60ns
sending of values from observable via switch_on_next to subscriber 407.00ns 393.032 1.04 650.13ns

window

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
window 17.81ns 21.0383 0.85 46.45ns
sending of values from observable via window to subscriber 526.08ns 602.094 0.87 369.23ns

with_latest_from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
with_latest_from construction from observable via dot + subscribe 667.76ns 772.077 0.86 1074.89ns
sending of values from observable via with_latest_from to subscriber 24.10ns 24.6759 0.98 3.02ns

Linux GCC

Observable construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable construction 0.40ns 0.335015 1.20 0.40ns
Dynamic observable construction 30.40ns 31.6089 0.96 22.18ns
Specific observable construction + as_dynamic 28.52ns 31.57 0.90 22.17ns

Observable lift

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable lift specific observer 93.14ns 89.0396 1.05 327.55ns
Specific observable lift dynamic observer 124.67ns 116.712 1.07 349.37ns
Dynamic observable lift specific observer 176.25ns 169.569 1.04 395.88ns
Dynamic observable lift dynamic observer 199.87ns 179.356 1.11 371.20ns

Observable subscribe

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe specific observer 50.06ns 47.2091 1.06 314.79ns
Specific observable subscribe dynamic observer 63.65ns 60.5935 1.05 341.04ns
Dynamic observable subscribe specific observer 126.27ns 123.229 1.02 378.04ns
Dynamic observable subscribe dynamic observer 126.94ns 119.833 1.06 339.31ns

Observable subscribe #2

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe lambda 49.47ns 48.5308 1.02 325.71ns
Dynamic observable subscribe lambda 125.09ns 122.224 1.02 415.40ns
Specific observable subscribe lambda without subscription 49.79ns 48.4838 1.03 316.10ns
Dynamic observable subscribe lambda without subscription 124.93ns 122.317 1.02 369.18ns
Specific observable subscribe specific subscriber 16.08ns 16.7197 0.96 262.69ns
Dynamic observable subscribe specific subscriber 83.58ns 82.7031 1.01 314.11ns
Specific observable subscribe dynamic observer 16.06ns 16.7564 0.96 274.12ns
Dynamic observable subscribe dynamic observer 70.75ns 68.3129 1.04 291.49ns

Observer construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer construction 0.43ns 0.335052 1.27 0.40ns
Dynamic observer construction 29.17ns 31.4644 0.93 18.90ns
Specific observer construction + as_dynamic 28.93ns 31.4808 0.92 18.86ns

OnNext

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer OnNext 0.43ns 0.335179 1.29 0.44ns
Dynamic observer OnNext 2.01ns 2.01041 1.00 2.01ns

Subscriber construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Make subsriber 41.55ns 40.2889 1.03 56.88ns
Make copy of subscriber 16.06ns 16.7389 0.96 5.92ns
Transform subsriber to dynamic 48.43ns 44.8871 1.08 23.00ns

Subscription

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
composite_subscription create 34.09ns 30.8264 1.11 52.92ns
composite_subscription add 47.62ns 45.7312 1.04 14.50ns
composite_subscription unsubscribe 8.03ns 8.32709 0.96 13.67ns

buffer

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
buffer 19.02ns 16.8904 1.13 56.39ns
sending of values from observable via buffer to subscriber 9.51ns 11.3964 0.83 26.60ns

concat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
concat 19.66ns 17.7285 1.11 132.98ns
concat_with 92.71ns 89.1403 1.04 318.08ns

distinct_until_changed

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
distinct_until_changed construction from observable via dot + subscribe 128.07ns 123.697 1.04 368.39ns
sending of values from observable via distinct_until_changed to subscriber 4.42ns 5.35242 0.83 1.28ns

foundamental sources

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
empty 16.06ns 16.7295 0.96 46.52ns
error 48.58ns 49.1928 0.99 83.04ns
never 16.06ns 16.7373 0.96 262.18ns

from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
from vector with int 27.64ns 29.8162 0.93 61.33ns

just

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
just send int 16.10ns 16.753 0.96 53.90ns
just send variadic 18.93ns 16.7784 1.13 45.98ns

map

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
map construction from observable via dot + subscribe 76.28ns 71.9922 1.06 358.67ns
sending of values from observable via map to subscriber 4.32ns 4.022 1.07 1.60ns

merge

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
merge 16.80ns 17.4386 0.96 136.08ns
merge_with 87.73ns 86.0149 1.02 328.55ns

observe_on

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
observe_on construction from observable via dot + subscribe 825.70ns 789.981 1.05 2750.92ns
sending of values from observable via observe_on to subscriber 151.16ns 146.78 1.03 231.08ns

publish_subject callbacks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
on_next 30.08ns 23.3037 1.29 9.44ns
on_error 0.81ns 0.673427 1.20 16.17ns
on_completed 0.74ns 0.550515 1.34 1.21ns

publish_subject routines

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
construct 172.32ns 171.669 1.00 148.53ns
get_observable 33.76ns 29.5337 1.14 44.97ns
get_subscriber 68.36ns 65.0951 1.05 22.19ns

repeat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
repeat construction from observable via dot + subscribe 17.90ns 18.5205 0.97 25.57ns

scan

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
scan construction from observable via dot + subscribe 118.44ns 114.371 1.04 387.27ns
sending of values from observable via scan to subscriber 3.62ns 4.15254 0.87 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 1712.01ns 1669.03 1.03 4608.85ns
sending of values from observable via switch_on_next to subscriber 469.20ns 427.812 1.10 1082.89ns

window

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
window 20.27ns 17.8955 1.13 59.20ns
sending of values from observable via window to subscriber 586.16ns 568.008 1.03 419.53ns

with_latest_from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
with_latest_from construction from observable via dot + subscribe 728.98ns 702.131 1.04 1483.00ns
sending of values from observable via with_latest_from to subscriber 25.78ns 25.7716 1.00 3.34ns

Windows MSVC

Observable construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable construction 1.83ns 1.5142 1.21 0.69ns
Dynamic observable construction 79.78ns 81.8103 0.98 154.09ns
Specific observable construction + as_dynamic 79.93ns 81.7411 0.98 124.07ns

Observable lift

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable lift specific observer 146.73ns 142.906 1.03 1204.78ns
Specific observable lift dynamic observer 166.06ns 169.315 0.98 2036.82ns
Dynamic observable lift specific observer 269.38ns 267.396 1.01 1408.82ns
Dynamic observable lift dynamic observer 229.21ns 221.878 1.03 1290.70ns

Observable subscribe

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe specific observer 104.11ns 104.996 0.99 1186.17ns
Specific observable subscribe dynamic observer 116.22ns 117.69 0.99 1308.27ns
Dynamic observable subscribe specific observer 236.70ns 219.292 1.08 1376.90ns
Dynamic observable subscribe dynamic observer 195.61ns 163.903 1.19 1251.82ns

Observable subscribe #2

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe lambda 107.24ns 103.196 1.04 1239.95ns
Dynamic observable subscribe lambda 223.46ns 239.144 0.93 1470.58ns
Specific observable subscribe lambda without subscription 108.55ns 103.254 1.05 1166.87ns
Dynamic observable subscribe lambda without subscription 217.23ns 217.017 1.00 1367.00ns
Specific observable subscribe specific subscriber 16.88ns 16.7573 1.01 885.53ns
Dynamic observable subscribe specific subscriber 135.31ns 132.109 1.02 1043.23ns
Specific observable subscribe dynamic observer 17.85ns 16.8256 1.06 874.07ns
Dynamic observable subscribe dynamic observer 68.13ns 64.6418 1.05 1101.32ns

Observer construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer construction 0.77ns 0.670323 1.14 1.86ns
Dynamic observer construction 90.12ns 81.7871 1.10 124.39ns
Specific observer construction + as_dynamic 84.19ns 81.717 1.03 124.12ns

OnNext

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer OnNext 0.66ns 0.673045 0.97 0.67ns
Dynamic observer OnNext 2.07ns 2.02188 1.02 1.94ns

Subscriber construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Make subsriber 88.68ns 88.8711 1.00 369.99ns
Make copy of subscriber 15.23ns 16.7781 0.91 35.09ns
Transform subsriber to dynamic 97.69ns 97.3232 1.00 159.03ns

Subscription

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
composite_subscription create 93.36ns 88.1211 1.06 349.81ns
composite_subscription add 58.63ns 65.1939 0.90 71.45ns
composite_subscription unsubscribe 6.16ns 8.32691 0.74 23.57ns

buffer

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
buffer 30.72ns 25.219 1.22 264.55ns
sending of values from observable via buffer to subscriber 8.96ns 9.1432 0.98 113.57ns

concat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
concat 43.23ns 34.9743 1.24 765.54ns
concat_with 363.04ns 304.793 1.19 1647.52ns

distinct_until_changed

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
distinct_until_changed construction from observable via dot + subscribe 169.53ns 180.277 0.94 1282.54ns
sending of values from observable via distinct_until_changed to subscriber 3.71ns 3.69217 1.01 3.51ns

foundamental sources

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
empty 15.65ns 16.8161 0.93 200.52ns
error 48.46ns 47.2557 1.03 205.07ns
never 16.83ns 16.7565 1.00 971.13ns

from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
from vector with int 92.87ns 85.1362 1.09 288.35ns

just

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
just send int 24.12ns 22.7296 1.06 202.11ns
just send variadic 23.16ns 22.1615 1.04 217.28ns

map

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
map construction from observable via dot + subscribe 76.72ns 76.866 1.00 1092.19ns
sending of values from observable via map to subscriber 7.27ns 6.36988 1.14 7.83ns

merge

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
merge 35.13ns 35.1077 1.00 765.58ns
merge_with 344.07ns 308.878 1.11 1688.12ns

observe_on

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
observe_on construction from observable via dot + subscribe 2069.54ns 966.92 2.14 5762.60ns
sending of values from observable via observe_on to subscriber 157.89ns 145.784 1.08 953.91ns

publish_subject callbacks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
on_next 22.82ns 20.557 1.11 34.28ns
on_error 2.30ns 2.81705 0.82 20.86ns
on_completed 2.15ns 2.55364 0.84 0.73ns

publish_subject routines

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
construct 347.98ns 291.121 1.20 895.93ns
get_observable 26.28ns 28.2981 0.93 212.46ns
get_subscriber 61.67ns 50.4415 1.22 102.17ns

repeat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
repeat construction from observable via dot + subscribe 31.40ns 27.4361 1.14 108.47ns

scan

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
scan construction from observable via dot + subscribe 163.18ns 168.433 0.97 1432.90ns
sending of values from observable via scan to subscriber 8.22ns 7.49064 1.10 10.02ns

switch_on_next

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
switch_on_next construction from observable via dot + subscribe 2640.00ns 2629.0 1.00 12810.00ns
sending of values from observable via switch_on_next to subscriber 770.50ns 691.75 1.11 3324.67ns

window

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
window 32.69ns 28.4136 1.15 311.10ns
sending of values from observable via window to subscriber 953.16ns 825.613 1.15 1597.94ns

with_latest_from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
with_latest_from construction from observable via dot + subscribe 1032.32ns 1065.9 0.97 4273.33ns
sending of values from observable via with_latest_from to subscriber 28.50ns 31.4477 0.91 9.19ns

@AlexInLog AlexInLog merged commit 2a5e3e5 into AlexInLog:main Aug 1, 2022
@tcw165 tcw165 deleted the op/trampoline branch August 1, 2022 06:41
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.

2 participants