Skip to content

Commit

Permalink
Update ci.yml
Browse files Browse the repository at this point in the history
  • Loading branch information
victimsnino authored Nov 3, 2022
1 parent 14f06cc commit fe10fad
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ jobs:
id: cache-catch2
with:
path: ${{env.Catch2_DIR}}
key: catch2-${{env.CATCH2_VERSION}}-${{matrix.config.os}}
key: catch2-${{env.CATCH2_VERSION}}-ubuntu-latest

- name: Run CMake
uses: lukka/run-cmake@v10
Expand Down

2 comments on commit fe10fad

@github-actions
Copy link
Contributor

Choose a reason for hiding this comment

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

BENCHMARK RESULTS (AUTOGENERATED)

ci-ubuntu-clang

Observable construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable construction 0.42ns 0.335436 1.25 0.38ns
Dynamic observable construction 31.13ns 29.1401 1.07 26.24ns
Specific observable construction + as_dynamic 31.27ns 29.1682 1.07 24.80ns

Observable lift

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable lift specific observer 110.12ns 88.8834 1.24 335.01ns
Specific observable lift dynamic observer 137.96ns 112.493 1.23 353.30ns
Dynamic observable lift specific observer 197.63ns 171.974 1.15 388.84ns
Dynamic observable lift dynamic observer 201.81ns 177.309 1.14 380.72ns

Observable subscribe

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe specific observer 68.24ns 57.9604 1.18 311.51ns
Specific observable subscribe dynamic observer 85.04ns 71.5213 1.19 346.53ns
Dynamic observable subscribe specific observer 144.33ns 126.485 1.14 346.25ns
Dynamic observable subscribe dynamic observer 138.21ns 123.944 1.12 336.24ns

Observable subscribe #2

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe lambda 65.38ns 58.0335 1.13 282.05ns
Dynamic observable subscribe lambda 121.93ns 123.948 0.98 372.43ns
Specific observable subscribe lambda without subscription 70.65ns 58.1703 1.21 326.59ns
Dynamic observable subscribe lambda without subscription 143.63ns 124.7 1.15 378.08ns
Specific observable subscribe specific subscriber 35.22ns 27.8598 1.26 281.82ns
Dynamic observable subscribe specific subscriber 88.40ns 88.7924 1.00 325.71ns
Specific observable subscribe dynamic observer 28.54ns 27.7963 1.03 286.66ns
Dynamic observable subscribe dynamic observer 93.33ns 77.2916 1.21 311.67ns

Observer construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer construction 0.38ns 0.336052 1.14 0.39ns
Dynamic observer construction 33.08ns 29.1963 1.13 22.77ns
Specific observer construction + as_dynamic 33.07ns 29.1969 1.13 22.24ns

OnNext

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer OnNext 0.69ns 0.670239 1.02 1.32ns
Dynamic observer OnNext 2.31ns 2.00785 1.15 2.25ns

Subscriber construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Make subsriber 39.22ns 34.88 1.12 87.71ns
Make copy of subscriber 22.52ns 16.7532 1.34 5.65ns
Transform subsriber to dynamic 49.26ns 43.5246 1.13 30.21ns

Subscription

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
composite_subscription create 37.46ns 34.857 1.07 59.98ns
composite_subscription add 53.72ns 47.4327 1.13 79.39ns
composite_subscription unsubscribe 74.79ns 43.4062 1.72 23.47ns

buffer

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
buffer 260.25ns 244.656 1.06 1910.85ns
sending of values from observable via buffer to subscriber 7.22ns 5.35918 1.35 29.96ns

chains creation test

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
long non-state chain creation + subscribe 302.75ns 254.19 1.19 677.25ns
long stateful chain creation + subscribe 451.46ns 375.594 1.20 1422.92ns

combine_latest

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
combine_latest construction from observable via dot + subscribe 910.42ns 858.53 1.06 1332.81ns
sending of values from observable via combine_latest to subscriber 36.87ns 27.4512 1.34 2.29ns

concat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
concat 2422.44ns 1876.91 1.29 3395.15ns
concat_with 2761.12ns 2160.25 1.28 4815.93ns

distinct_until_changed

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
distinct_until_changed construction from observable via dot + subscribe 149.70ns 110.998 1.35 311.45ns
sending of values from observable via distinct_until_changed to subscriber 2.48ns 2.67606 0.93 1.41ns

first

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
first construction from observable via dot + subscribe 151.90ns 122.764 1.24 693.84ns
sending of values from observable via first to subscriber 0.56ns 0.671272 0.84 0.57ns

foundamental sources

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
empty 65.90ns 61.8172 1.07 641.44ns
error 118.22ns 111.666 1.06 838.18ns
never 28.74ns 28.7818 1.00 296.76ns

from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
from vector with int 88.51ns 79.6034 1.11 673.58ns

immediate scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 0.49ns 1.34313 0.37 122.70ns
re-schedule 10 times 11.16ns 11.4584 0.97 198.73ns

just

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
just send int 82.76ns 64.8894 1.28 743.52ns
just send variadic 106.26ns 94.9762 1.12 760.58ns

last

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
last construction from observable via dot + subscribe 182.19ns 168.952 1.08 444.09ns
sending of values from observable via last to subscriber 4.02ns 2.09473 1.92 2.06ns

map

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
map construction from observable via dot + subscribe 79.93ns 68.6343 1.16 262.46ns
sending of values from observable via map to subscriber 0.99ns 1.34152 0.74 1.95ns

merge

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
merge 2409.36ns 1817.2 1.33 3430.30ns
merge_with 2097.09ns 2101.97 1.00 4392.06ns

observe_on

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
observe_on construction from observable via dot + subscribe 501.17ns 426.455 1.18 3276.81ns
sending of values from observable via observe_on to subscriber 63.21ns 61.3581 1.03 311.99ns

on_error_resume_next

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
on_error_resume_next construction from observable via dot + subscribe 451.10ns 421.021 1.07 1115.10ns

publish_subject callbacks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
on_next 28.36ns 24.137 1.17 10.15ns
on_error 0.56ns 0.674351 0.84 19.56ns
on_completed 0.56ns 0.674552 0.83 0.51ns

publish_subject routines

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
construct 237.76ns 196.428 1.21 342.57ns
get_observable 26.52ns 26.5017 1.00 47.54ns
get_subscriber 60.74ns 60.5744 1.00 16.09ns

repeat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
repeat construction from observable via dot + subscribe 4434.62ns 3914.68 1.13 3367.71ns

scan

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
scan construction from observable via dot + subscribe 106.02ns 100.221 1.06 349.86ns
sending of values from observable via scan to subscriber 2.52ns 2.00672 1.26 1.90ns

single-threaded locks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no-lock increment 4.90ns 2.02082 2.42 .
mutex lock increment 25.89ns 18.1229 1.43 .
spin-lock increment 11.99ns 9.04074 1.33 .

skip

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
skip construction from observable via dot + subscribe 127.57ns 98.508 1.29 547.79ns
sending of values from observable via skip to subscriber 2.62ns 2.34558 1.12 2.33ns

switch_on_next

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
switch_on_next construction from observable via dot + subscribe 3474.48ns 2193.68 1.58 3234.71ns
sending of values from observable via switch_on_next to subscriber 652.29ns 567.575 1.15 782.58ns

take

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take construction from observable via dot + subscribe 190.05ns 168.821 1.13 602.83ns
sending of values from observable via take to subscriber 2.61ns 2.34968 1.11 2.84ns

take_last

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take_last construction from observable via dot + subscribe 264.64ns 210.836 1.26 628.45ns
sending of values from observable via take_last to subscriber 3.46ns 2.69343 1.29 4.60ns

take_until

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take_until construction from observable via dot + subscribe 1224.05ns 1024.26 1.20 1268.10ns
sending of values from observable via take_until to subscriber 13.71ns 9.06686 1.51 2.36ns

timeout

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
timeout construction from observable via dot + subscribe with run_loop 1003.79ns 875.555 1.15 9017.70ns
sending of values from observable via timeout to subscriber with unreachable timeout interval with run_loop 64.81ns 55.8209 1.16 11423.60ns

trampoline scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 11.69ns 12.2813 0.95 185.57ns
re-schedule 10 times 31.67ns 32.5632 0.97 188.65ns
recursively schedule 10 times 1689.65ns 1393.43 1.21 8617.78ns

window

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
window 2392.54ns 1999.22 1.20 3665.66ns
sending of values from observable via window to subscriber 634.27ns 541.723 1.17 510.40ns

with_latest_from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
with_latest_from construction from observable via dot + subscribe 1369.02ns 1016.75 1.35 1229.93ns
sending of values from observable via with_latest_from to subscriber 33.70ns 27.0968 1.24 3.38ns

ci-ubuntu-gcc

Observable construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable construction 0.39ns 0.401574 0.98 0.40ns
Dynamic observable construction 36.24ns 29.4704 1.23 26.69ns
Specific observable construction + as_dynamic 33.74ns 29.0544 1.16 28.38ns

Observable lift

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable lift specific observer 111.08ns 95.3194 1.17 411.20ns
Specific observable lift dynamic observer 128.95ns 128.492 1.00 440.08ns
Dynamic observable lift specific observer 217.42ns 189.537 1.15 498.57ns
Dynamic observable lift dynamic observer 227.67ns 206.041 1.10 441.28ns

Observable subscribe

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe specific observer 72.06ns 59.597 1.21 398.59ns
Specific observable subscribe dynamic observer 87.97ns 78.6378 1.12 358.44ns
Dynamic observable subscribe specific observer 155.35ns 128.858 1.21 450.32ns
Dynamic observable subscribe dynamic observer 140.22ns 133.167 1.05 423.04ns

Observable subscribe #2

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe lambda 72.92ns 59.5459 1.22 389.09ns
Dynamic observable subscribe lambda 149.66ns 129.602 1.15 448.84ns
Specific observable subscribe lambda without subscription 68.02ns 59.9421 1.13 393.20ns
Dynamic observable subscribe lambda without subscription 158.01ns 128.959 1.23 472.81ns
Specific observable subscribe specific subscriber 34.17ns 26.9016 1.27 324.33ns
Dynamic observable subscribe specific subscriber 106.32ns 96.4695 1.10 371.64ns
Specific observable subscribe dynamic observer 35.70ns 27.0377 1.32 314.41ns
Dynamic observable subscribe dynamic observer 100.29ns 91.2691 1.10 276.08ns

Observer construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer construction 0.36ns 0.401397 0.90 0.40ns
Dynamic observer construction 37.81ns 30.242 1.25 25.23ns
Specific observer construction + as_dynamic 37.88ns 28.7944 1.32 24.85ns

OnNext

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer OnNext 0.40ns 0.432941 0.92 0.40ns
Dynamic observer OnNext 2.25ns 2.00516 1.12 2.07ns

Subscriber construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Make subsriber 39.49ns 33.7888 1.17 77.07ns
Make copy of subscriber 19.45ns 23.3191 0.83 5.21ns
Transform subsriber to dynamic 53.62ns 50.6093 1.06 30.37ns

Subscription

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
composite_subscription create 44.37ns 33.9091 1.31 66.24ns
composite_subscription add 60.05ns 54.2593 1.11 110.36ns
composite_subscription unsubscribe 47.16ns 45.1839 1.04 25.20ns

buffer

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
buffer 269.04ns 240.776 1.12 2204.33ns
sending of values from observable via buffer to subscriber 7.26ns 6.39062 1.14 37.07ns

chains creation test

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
long non-state chain creation + subscribe 340.42ns 326.176 1.04 839.40ns
long stateful chain creation + subscribe 489.95ns 469.353 1.04 1665.64ns

combine_latest

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
combine_latest construction from observable via dot + subscribe 1091.27ns 944.408 1.16 1366.51ns
sending of values from observable via combine_latest to subscriber 33.78ns 33.7646 1.00 2.82ns

concat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
concat 2295.03ns 2011.25 1.14 4109.04ns
concat_with 2497.60ns 2383.83 1.05 4515.54ns

distinct_until_changed

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
distinct_until_changed construction from observable via dot + subscribe 134.20ns 119.308 1.12 434.29ns
sending of values from observable via distinct_until_changed to subscriber 3.35ns 3.21153 1.04 2.78ns

first

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
first construction from observable via dot + subscribe 165.74ns 148.135 1.12 882.71ns
sending of values from observable via first to subscriber 1.58ns 1.2082 1.30 1.18ns

foundamental sources

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
empty 81.58ns 68.2984 1.19 873.20ns
error 139.18ns 117.473 1.18 999.18ns
never 38.46ns 29.0946 1.32 322.18ns

from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
from vector with int 87.41ns 81.1319 1.08 917.47ns

immediate scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 1.61ns 0.804858 2.00 157.21ns
re-schedule 10 times 18.32ns 19.2447 0.95 200.56ns

just

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
just send int 79.77ns 71.1444 1.12 865.37ns
just send variadic 112.41ns 94.4965 1.19 993.73ns

last

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
last construction from observable via dot + subscribe 212.43ns 181.542 1.17 541.57ns
sending of values from observable via last to subscriber 2.76ns 1.79618 1.54 1.60ns

map

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
map construction from observable via dot + subscribe 99.43ns 82.7964 1.20 424.19ns
sending of values from observable via map to subscriber 0.88ns 0.80345 1.09 3.24ns

merge

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
merge 2266.34ns 1971.26 1.15 4354.05ns
merge_with 2639.32ns 2348.68 1.12 4482.05ns

observe_on

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
observe_on construction from observable via dot + subscribe 569.17ns 481.737 1.18 3160.19ns
sending of values from observable via observe_on to subscriber 82.25ns 72.3015 1.14 271.38ns

on_error_resume_next

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
on_error_resume_next construction from observable via dot + subscribe 527.34ns 458.649 1.15 901.34ns

publish_subject callbacks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
on_next 26.24ns 29.8182 0.88 13.57ns
on_error 0.77ns 0.80962 0.95 20.10ns
on_completed 0.81ns 0.807341 1.00 0.80ns

publish_subject routines

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
construct 215.52ns 209.801 1.03 211.23ns
get_observable 35.51ns 33.6158 1.06 58.57ns
get_subscriber 66.58ns 63.9317 1.04 27.74ns

repeat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
repeat construction from observable via dot + subscribe 4589.82ns 4319.54 1.06 3666.84ns

scan

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
scan construction from observable via dot + subscribe 134.99ns 113.863 1.19 465.03ns
sending of values from observable via scan to subscriber 2.45ns 2.00895 1.22 2.00ns

single-threaded locks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no-lock increment 2.35ns 0.802828 2.92 .
mutex lock increment 19.01ns 22.187 0.86 .
spin-lock increment 10.39ns 10.4472 0.99 .

skip

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
skip construction from observable via dot + subscribe 138.07ns 113.574 1.22 637.88ns
sending of values from observable via skip to subscriber 3.14ns 3.22102 0.97 2.67ns

switch_on_next

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
switch_on_next construction from observable via dot + subscribe 2797.86ns 2460.48 1.14 5070.30ns
sending of values from observable via switch_on_next to subscriber 647.72ns 647.218 1.00 1328.75ns

take

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take construction from observable via dot + subscribe 203.34ns 172.615 1.18 713.86ns
sending of values from observable via take to subscriber 3.91ns 4.05558 0.96 4.00ns

take_last

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take_last construction from observable via dot + subscribe 245.30ns 215.881 1.14 774.94ns
sending of values from observable via take_last to subscriber 3.77ns 3.38351 1.11 7.40ns

take_until

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take_until construction from observable via dot + subscribe 1211.71ns 1121.18 1.08 1967.44ns
sending of values from observable via take_until to subscriber 11.08ns 10.4491 1.06 2.15ns

timeout

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
timeout construction from observable via dot + subscribe with run_loop 1122.89ns 932.433 1.20 18146.50ns
sending of values from observable via timeout to subscriber with unreachable timeout interval with run_loop 71.30ns 68.4608 1.04 16043.60ns

trampoline scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 24.48ns 20.0978 1.22 222.35ns
re-schedule 10 times 55.11ns 39.7267 1.39 267.48ns
recursively schedule 10 times 1706.21ns 1388.47 1.23 9946.59ns

window

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
window 2381.53ns 2245.37 1.06 3854.03ns
sending of values from observable via window to subscriber 695.13ns 610.601 1.14 506.80ns

with_latest_from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
with_latest_from construction from observable via dot + subscribe 1301.00ns 1112.07 1.17 1740.37ns
sending of values from observable via with_latest_from to subscriber 32.11ns 31.8946 1.01 5.32ns

ci-windows

Observable construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable construction 1.63ns 1.80465 0.90 0.76ns
Dynamic observable construction 96.09ns 102.243 0.94 141.93ns
Specific observable construction + as_dynamic 76.20ns 95.8516 0.79 131.77ns

Observable lift

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable lift specific observer 153.90ns 172.409 0.89 1308.22ns
Specific observable lift dynamic observer 193.03ns 216.463 0.89 1098.05ns
Dynamic observable lift specific observer 237.24ns 344.417 0.69 1284.40ns
Dynamic observable lift dynamic observer 283.69ns 283.09 1.00 1305.80ns

Observable subscribe

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe specific observer 122.33ns 132.118 0.93 1190.19ns
Specific observable subscribe dynamic observer 122.52ns 156.605 0.78 1297.61ns
Dynamic observable subscribe specific observer 233.63ns 272.47 0.86 1660.38ns
Dynamic observable subscribe dynamic observer 196.45ns 217.847 0.90 1441.39ns

Observable subscribe #2

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe lambda 112.91ns 133.162 0.85 1347.22ns
Dynamic observable subscribe lambda 258.57ns 288.417 0.90 1644.85ns
Specific observable subscribe lambda without subscription 108.51ns 138.754 0.78 1323.59ns
Dynamic observable subscribe lambda without subscription 257.99ns 286.067 0.90 1338.16ns
Specific observable subscribe specific subscriber 34.23ns 39.0638 0.88 1021.12ns
Dynamic observable subscribe specific subscriber 150.91ns 174.913 0.86 1093.56ns
Specific observable subscribe dynamic observer 35.21ns 36.5196 0.96 958.07ns
Dynamic observable subscribe dynamic observer 83.48ns 97.2194 0.86 1001.52ns

Observer construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer construction 1.46ns 1.81312 0.81 1.65ns
Dynamic observer construction 86.08ns 98.5545 0.87 133.71ns
Specific observer construction + as_dynamic 96.22ns 98.1962 0.98 127.25ns

OnNext

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer OnNext 0.76ns 0.802339 0.95 0.65ns
Dynamic observer OnNext 2.15ns 2.20592 0.97 2.38ns

Subscriber construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Make subsriber 92.52ns 121.73 0.76 429.88ns
Make copy of subscriber 19.58ns 20.7714 0.94 39.66ns
Transform subsriber to dynamic 113.50ns 117.333 0.97 323.41ns

Subscription

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
composite_subscription create 99.92ns 107.24 0.93 312.23ns
composite_subscription add 68.23ns 81.8514 0.83 187.00ns
composite_subscription unsubscribe 75.70ns 74.7124 1.01 138.98ns

buffer

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
buffer 714.62ns 429.257 1.66 4256.50ns
sending of values from observable via buffer to subscriber 6.74ns 7.82523 0.86 110.24ns

chains creation test

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
long non-state chain creation + subscribe 285.83ns 323.877 0.88 2054.36ns
long stateful chain creation + subscribe 800.77ns 788.526 1.02 2880.62ns

combine_latest

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
combine_latest construction from observable via dot + subscribe 2103.25ns 1877.69 1.12 3519.38ns
sending of values from observable via combine_latest to subscriber 48.68ns 58.7691 0.83 5.34ns

concat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
concat 4069.50ns 3260.2 1.25 9720.00ns
concat_with 3780.25ns 4088.25 0.92 13012.70ns

distinct_until_changed

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
distinct_until_changed construction from observable via dot + subscribe 192.47ns 221.671 0.87 1151.81ns
sending of values from observable via distinct_until_changed to subscriber 3.13ns 4.05184 0.77 6.12ns

first

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
first construction from observable via dot + subscribe 148.89ns 154.848 0.96 3120.00ns
sending of values from observable via first to subscriber 2.50ns 2.81255 0.89 2.08ns

foundamental sources

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
empty 69.33ns 76.6063 0.91 2400.50ns
error 124.83ns 138.973 0.90 2970.18ns
never 35.67ns 37.0035 0.96 923.18ns

from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
from vector with int 141.15ns 165.768 0.85 2622.82ns

immediate scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 2.11ns 2.2831 0.93 493.21ns
re-schedule 10 times 112.64ns 119.471 0.94 411.39ns

just

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
just send int 68.90ns 90.114 0.76 2800.91ns
just send variadic 103.49ns 123.03 0.84 2795.55ns

last

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
last construction from observable via dot + subscribe 224.53ns 268.427 0.84 1603.11ns
sending of values from observable via last to subscriber 3.81ns 3.86551 0.99 3.72ns

map

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
map construction from observable via dot + subscribe 101.54ns 112.24 0.90 1207.00ns
sending of values from observable via map to subscriber 3.91ns 4.48922 0.87 7.59ns

merge

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
merge 3217.00ns 3096.2 1.04 10177.70ns
merge_with 3516.86ns 3998.44 0.88 13303.00ns

observe_on

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
observe_on construction from observable via dot + subscribe 681.33ns 745.289 0.91 5670.20ns
sending of values from observable via observe_on to subscriber 73.00ns 84.8892 0.86 889.03ns

on_error_resume_next

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
on_error_resume_next construction from observable via dot + subscribe 754.56ns 768.821 0.98 1823.79ns

publish_subject callbacks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
on_next 17.43ns 23.7249 0.73 37.71ns
on_error 2.60ns 3.38891 0.77 22.58ns
on_completed 2.91ns 3.87108 0.75 1.22ns

publish_subject routines

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
construct 319.58ns 444.886 0.72 690.63ns
get_observable 26.98ns 33.5698 0.80 148.05ns
get_subscriber 59.22ns 60.4279 0.98 88.72ns

repeat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
repeat construction from observable via dot + subscribe 7601.60ns 8180.0 0.93 12849.00ns

scan

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
scan construction from observable via dot + subscribe 216.14ns 220.34 0.98 1406.38ns
sending of values from observable via scan to subscriber 5.34ns 6.51271 0.82 9.90ns

single-threaded locks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no-lock increment 1.79ns 2.2595 0.79 .
mutex lock increment 27.79ns 31.3971 0.89 .
spin-lock increment 11.86ns 10.8384 1.09 .

skip

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
skip construction from observable via dot + subscribe 182.92ns 230.007 0.80 1534.53ns
sending of values from observable via skip to subscriber 4.72ns 5.1023 0.93 4.92ns

switch_on_next

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
switch_on_next construction from observable via dot + subscribe 4038.12ns 4288.12 0.94 16358.00ns
sending of values from observable via switch_on_next to subscriber 996.50ns 1057.77 0.94 2995.44ns

take

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take construction from observable via dot + subscribe 193.59ns 271.057 0.71 2492.31ns
sending of values from observable via take to subscriber 6.43ns 7.9617 0.81 6.55ns

take_last

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take_last construction from observable via dot + subscribe 366.08ns 386.822 0.95 2933.45ns
sending of values from observable via take_last to subscriber 3.82ns 5.08209 0.75 22.70ns

take_until

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take_until construction from observable via dot + subscribe 1425.33ns 1900.41 0.75 5225.00ns
sending of values from observable via take_until to subscriber 9.84ns 14.5393 0.68 5.55ns

timeout

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
timeout construction from observable via dot + subscribe with run_loop 1442.42ns 1735.22 0.83 6008.20ns
sending of values from observable via timeout to subscriber with unreachable timeout interval with run_loop 66.76ns 66.523 1.00 1481.06ns

trampoline scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 21.70ns 22.7256 0.95 720.72ns
re-schedule 10 times 111.39ns 146.477 0.76 700.88ns
recursively schedule 10 times 2707.36ns 3159.4 0.86 22648.50ns

window

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
window 3402.10ns 3503.2 0.97 9137.00ns
sending of values from observable via window to subscriber 896.32ns 986.323 0.91 1695.40ns

with_latest_from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
with_latest_from construction from observable via dot + subscribe 2263.46ns 2393.23 0.95 3721.43ns
sending of values from observable via with_latest_from to subscriber 36.28ns 45.754 0.79 7.33ns

@github-actions
Copy link
Contributor

Choose a reason for hiding this comment

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

BENCHMARK RESULTS (AUTOGENERATED)

ci-ubuntu-clang

Observable construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable construction 0.34ns 0.420199 0.80 0.33ns
Dynamic observable construction 29.20ns 31.1342 0.94 24.38ns
Specific observable construction + as_dynamic 29.17ns 31.2676 0.93 24.14ns

Observable lift

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable lift specific observer 88.95ns 110.12 0.81 290.25ns
Specific observable lift dynamic observer 110.47ns 137.955 0.80 307.63ns
Dynamic observable lift specific observer 170.58ns 197.628 0.86 336.52ns
Dynamic observable lift dynamic observer 177.14ns 201.81 0.88 321.41ns

Observable subscribe

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe specific observer 57.94ns 68.2428 0.85 288.80ns
Specific observable subscribe dynamic observer 70.74ns 85.0366 0.83 297.45ns
Dynamic observable subscribe specific observer 127.95ns 144.329 0.89 329.11ns
Dynamic observable subscribe dynamic observer 123.86ns 138.214 0.90 316.18ns

Observable subscribe #2

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe lambda 57.92ns 65.3806 0.89 287.41ns
Dynamic observable subscribe lambda 123.99ns 121.931 1.02 333.76ns
Specific observable subscribe lambda without subscription 58.05ns 70.6469 0.82 289.36ns
Dynamic observable subscribe lambda without subscription 124.06ns 143.634 0.86 337.67ns
Specific observable subscribe specific subscriber 27.80ns 35.2211 0.79 223.75ns
Dynamic observable subscribe specific subscriber 88.55ns 88.4039 1.00 268.98ns
Specific observable subscribe dynamic observer 27.76ns 28.5358 0.97 237.77ns
Dynamic observable subscribe dynamic observer 77.36ns 93.3338 0.83 260.36ns

Observer construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer construction 0.34ns 0.381572 0.88 0.34ns
Dynamic observer construction 29.16ns 33.0793 0.88 21.44ns
Specific observer construction + as_dynamic 29.24ns 33.0696 0.88 21.34ns

OnNext

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer OnNext 0.67ns 0.686823 0.97 0.67ns
Dynamic observer OnNext 2.02ns 2.30919 0.87 2.34ns

Subscriber construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Make subsriber 34.89ns 39.2238 0.89 67.55ns
Make copy of subscriber 16.71ns 22.52 0.74 4.70ns
Transform subsriber to dynamic 43.52ns 49.2635 0.88 25.56ns

Subscription

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
composite_subscription create 34.84ns 37.4645 0.93 52.90ns
composite_subscription add 48.88ns 53.7215 0.91 136.47ns
composite_subscription unsubscribe 43.45ns 74.7852 0.58 23.47ns

buffer

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
buffer 245.97ns 260.248 0.95 1883.89ns
sending of values from observable via buffer to subscriber 5.39ns 7.2182 0.75 27.55ns

chains creation test

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
long non-state chain creation + subscribe 255.17ns 302.754 0.84 500.53ns
long stateful chain creation + subscribe 373.18ns 451.464 0.83 1360.11ns

combine_latest

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
combine_latest construction from observable via dot + subscribe 863.39ns 910.42 0.95 955.26ns
sending of values from observable via combine_latest to subscriber 27.50ns 36.8748 0.75 1.74ns

concat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
concat 1882.59ns 2422.44 0.78 3413.34ns
concat_with 2162.22ns 2761.12 0.78 3906.76ns

distinct_until_changed

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
distinct_until_changed construction from observable via dot + subscribe 110.86ns 149.7 0.74 251.36ns
sending of values from observable via distinct_until_changed to subscriber 2.68ns 2.48446 1.08 2.34ns

first

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
first construction from observable via dot + subscribe 123.69ns 151.898 0.81 580.41ns
sending of values from observable via first to subscriber 0.67ns 0.560879 1.20 0.67ns

foundamental sources

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
empty 61.71ns 65.8999 0.94 619.23ns
error 111.72ns 118.222 0.95 751.98ns
never 28.78ns 28.7422 1.00 250.58ns

from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
from vector with int 79.91ns 88.5115 0.90 656.59ns

immediate scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 1.34ns 0.491699 2.73 132.77ns
re-schedule 10 times 11.47ns 11.1608 1.03 146.57ns

just

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
just send int 64.95ns 82.7641 0.78 630.09ns
just send variadic 94.75ns 106.258 0.89 742.39ns

last

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
last construction from observable via dot + subscribe 169.42ns 182.195 0.93 349.57ns
sending of values from observable via last to subscriber 2.14ns 4.01593 0.53 1.67ns

map

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
map construction from observable via dot + subscribe 68.56ns 79.9289 0.86 244.61ns
sending of values from observable via map to subscriber 1.34ns 0.989757 1.35 1.51ns

merge

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
merge 1813.18ns 2409.36 0.75 3453.01ns
merge_with 2113.61ns 2097.09 1.01 3701.68ns

observe_on

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
observe_on construction from observable via dot + subscribe 423.80ns 501.168 0.85 2665.76ns
sending of values from observable via observe_on to subscriber 61.47ns 63.2137 0.97 202.28ns

on_error_resume_next

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
on_error_resume_next construction from observable via dot + subscribe 421.16ns 451.099 0.93 881.57ns

publish_subject callbacks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
on_next 24.06ns 28.3604 0.85 10.72ns
on_error 0.67ns 0.564322 1.19 19.17ns
on_completed 0.67ns 0.556646 1.21 0.67ns

publish_subject routines

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
construct 187.53ns 237.762 0.79 221.33ns
get_observable 26.46ns 26.5172 1.00 50.63ns
get_subscriber 60.58ns 60.7406 1.00 13.53ns

repeat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
repeat construction from observable via dot + subscribe 3898.76ns 4434.62 0.88 3028.10ns

scan

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
scan construction from observable via dot + subscribe 100.10ns 106.016 0.94 294.01ns
sending of values from observable via scan to subscriber 2.01ns 2.52107 0.80 2.01ns

single-threaded locks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no-lock increment 2.05ns 4.89918 0.42 .
mutex lock increment 18.05ns 25.8899 0.70 .
spin-lock increment 9.03ns 11.9946 0.75 .

skip

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
skip construction from observable via dot + subscribe 98.32ns 127.567 0.77 512.36ns
sending of values from observable via skip to subscriber 2.34ns 2.61588 0.90 1.78ns

switch_on_next

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
switch_on_next construction from observable via dot + subscribe 2204.43ns 3474.48 0.63 3068.38ns
sending of values from observable via switch_on_next to subscriber 582.29ns 652.289 0.89 725.56ns

take

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take construction from observable via dot + subscribe 169.22ns 190.047 0.89 484.16ns
sending of values from observable via take to subscriber 2.34ns 2.61282 0.90 3.36ns

take_last

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take_last construction from observable via dot + subscribe 211.51ns 264.637 0.80 522.12ns
sending of values from observable via take_last to subscriber 2.69ns 3.46432 0.78 3.81ns

take_until

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take_until construction from observable via dot + subscribe 1029.04ns 1224.05 0.84 1210.66ns
sending of values from observable via take_until to subscriber 9.02ns 13.7132 0.66 1.84ns

timeout

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
timeout construction from observable via dot + subscribe with run_loop 867.49ns 1003.79 0.86 14322.80ns
sending of values from observable via timeout to subscriber with unreachable timeout interval with run_loop 55.75ns 64.8118 0.86 22707.70ns

trampoline scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 11.39ns 11.6908 0.97 161.73ns
re-schedule 10 times 32.59ns 31.6652 1.03 190.07ns
recursively schedule 10 times 1396.14ns 1689.65 0.83 7401.42ns

window

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
window 1994.38ns 2392.54 0.83 3099.41ns
sending of values from observable via window to subscriber 540.79ns 634.273 0.85 363.34ns

with_latest_from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
with_latest_from construction from observable via dot + subscribe 1016.77ns 1369.02 0.74 1226.06ns
sending of values from observable via with_latest_from to subscriber 27.06ns 33.6953 0.80 3.02ns

ci-ubuntu-gcc

Observable construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable construction 0.33ns 0.392863 0.85 0.33ns
Dynamic observable construction 31.61ns 36.2441 0.87 23.42ns
Specific observable construction + as_dynamic 31.53ns 33.7438 0.93 23.66ns

Observable lift

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable lift specific observer 97.69ns 111.083 0.88 344.45ns
Specific observable lift dynamic observer 126.83ns 128.949 0.98 362.58ns
Dynamic observable lift specific observer 181.25ns 217.422 0.83 410.09ns
Dynamic observable lift dynamic observer 192.45ns 227.672 0.85 371.23ns

Observable subscribe

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe specific observer 60.76ns 72.0592 0.84 336.15ns
Specific observable subscribe dynamic observer 77.50ns 87.9701 0.88 344.60ns
Dynamic observable subscribe specific observer 130.54ns 155.352 0.84 382.86ns
Dynamic observable subscribe dynamic observer 127.04ns 140.216 0.91 351.13ns

Observable subscribe #2

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe lambda 60.92ns 72.9225 0.84 335.90ns
Dynamic observable subscribe lambda 130.55ns 149.659 0.87 378.94ns
Specific observable subscribe lambda without subscription 60.89ns 68.0152 0.90 341.27ns
Dynamic observable subscribe lambda without subscription 130.77ns 158.006 0.83 382.19ns
Specific observable subscribe specific subscriber 30.46ns 34.1716 0.89 273.99ns
Dynamic observable subscribe specific subscriber 98.19ns 106.318 0.92 320.41ns
Specific observable subscribe dynamic observer 30.52ns 35.6999 0.85 280.26ns
Dynamic observable subscribe dynamic observer 85.17ns 100.292 0.85 289.43ns

Observer construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer construction 0.34ns 0.36236 0.93 0.33ns
Dynamic observer construction 31.55ns 37.8117 0.83 20.93ns
Specific observer construction + as_dynamic 31.53ns 37.8793 0.83 20.46ns

OnNext

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer OnNext 0.34ns 0.398291 0.84 0.33ns
Dynamic observer OnNext 2.01ns 2.25485 0.89 1.75ns

Subscriber construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Make subsriber 34.44ns 39.4864 0.87 63.93ns
Make copy of subscriber 16.74ns 19.4478 0.86 4.46ns
Transform subsriber to dynamic 44.36ns 53.621 0.83 25.79ns

Subscription

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
composite_subscription create 34.50ns 44.3688 0.78 58.67ns
composite_subscription add 49.14ns 60.0496 0.82 90.84ns
composite_subscription unsubscribe 41.62ns 47.1582 0.88 21.69ns

buffer

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
buffer 236.34ns 269.043 0.88 1995.49ns
sending of values from observable via buffer to subscriber 6.07ns 7.26029 0.84 31.81ns

chains creation test

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
long non-state chain creation + subscribe 288.00ns 340.423 0.85 695.76ns
long stateful chain creation + subscribe 425.05ns 489.946 0.87 1861.98ns

combine_latest

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
combine_latest construction from observable via dot + subscribe 914.98ns 1091.27 0.84 1164.92ns
sending of values from observable via combine_latest to subscriber 28.09ns 33.7848 0.83 2.35ns

concat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
concat 1902.15ns 2295.03 0.83 3544.27ns
concat_with 2246.60ns 2497.6 0.90 3910.18ns

distinct_until_changed

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
distinct_until_changed construction from observable via dot + subscribe 121.22ns 134.2 0.90 364.66ns
sending of values from observable via distinct_until_changed to subscriber 2.71ns 3.34878 0.81 2.34ns

first

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
first construction from observable via dot + subscribe 137.51ns 165.738 0.83 715.08ns
sending of values from observable via first to subscriber 1.34ns 1.57582 0.85 1.01ns

foundamental sources

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
empty 67.16ns 81.583 0.82 736.51ns
error 116.75ns 139.181 0.84 854.93ns
never 32.39ns 38.4634 0.84 284.45ns

from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
from vector with int 84.95ns 87.407 0.97 773.46ns

immediate scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 1.34ns 1.60935 0.83 129.57ns
re-schedule 10 times 15.24ns 18.3241 0.83 166.73ns

just

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
just send int 70.63ns 79.7668 0.89 759.71ns
just send variadic 109.88ns 112.411 0.98 828.39ns

last

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
last construction from observable via dot + subscribe 176.50ns 212.434 0.83 445.33ns
sending of values from observable via last to subscriber 2.34ns 2.76274 0.85 1.34ns

map

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
map construction from observable via dot + subscribe 81.95ns 99.4253 0.82 347.45ns
sending of values from observable via map to subscriber 0.75ns 0.875995 0.86 2.68ns

merge

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
merge 1870.40ns 2266.34 0.83 3802.92ns
merge_with 2208.10ns 2639.32 0.84 4072.92ns

observe_on

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
observe_on construction from observable via dot + subscribe 469.41ns 569.169 0.82 2811.45ns
sending of values from observable via observe_on to subscriber 63.10ns 82.2532 0.77 255.64ns

on_error_resume_next

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
on_error_resume_next construction from observable via dot + subscribe 435.98ns 527.338 0.83 821.92ns

publish_subject callbacks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
on_next 22.43ns 26.2448 0.85 11.10ns
on_error 0.67ns 0.76862 0.88 16.80ns
on_completed 0.67ns 0.808973 0.83 0.67ns

publish_subject routines

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
construct 203.78ns 215.524 0.95 177.53ns
get_observable 29.46ns 35.5063 0.83 48.57ns
get_subscriber 57.43ns 66.577 0.86 23.11ns

repeat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
repeat construction from observable via dot + subscribe 4126.68ns 4589.82 0.90 3172.24ns

scan

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
scan construction from observable via dot + subscribe 116.39ns 134.993 0.86 389.86ns
sending of values from observable via scan to subscriber 2.01ns 2.44615 0.82 1.68ns

single-threaded locks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no-lock increment 2.01ns 2.34511 0.86 .
mutex lock increment 18.09ns 19.0063 0.95 .
spin-lock increment 9.04ns 10.3856 0.87 .

skip

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
skip construction from observable via dot + subscribe 114.92ns 138.075 0.83 541.50ns
sending of values from observable via skip to subscriber 2.69ns 3.13658 0.86 2.35ns

switch_on_next

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
switch_on_next construction from observable via dot + subscribe 2343.03ns 2797.86 0.84 4324.34ns
sending of values from observable via switch_on_next to subscriber 601.53ns 647.723 0.93 1119.87ns

take

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take construction from observable via dot + subscribe 171.86ns 203.343 0.85 596.33ns
sending of values from observable via take to subscriber 3.51ns 3.91078 0.90 3.48ns

take_last

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take_last construction from observable via dot + subscribe 206.37ns 245.297 0.84 645.84ns
sending of values from observable via take_last to subscriber 3.38ns 3.77206 0.89 6.27ns

take_until

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take_until construction from observable via dot + subscribe 1068.73ns 1211.71 0.88 1573.47ns
sending of values from observable via take_until to subscriber 10.25ns 11.0771 0.93 1.78ns

timeout

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
timeout construction from observable via dot + subscribe with run_loop 940.78ns 1122.89 0.84 18025.80ns
sending of values from observable via timeout to subscriber with unreachable timeout interval with run_loop 60.44ns 71.2982 0.85 15781.80ns

trampoline scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 20.83ns 24.4838 0.85 185.20ns
re-schedule 10 times 50.93ns 55.1074 0.92 221.90ns
recursively schedule 10 times 1444.64ns 1706.21 0.85 9114.90ns

window

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
window 2135.17ns 2381.53 0.90 3284.24ns
sending of values from observable via window to subscriber 591.77ns 695.126 0.85 421.68ns

with_latest_from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
with_latest_from construction from observable via dot + subscribe 1094.01ns 1301.0 0.84 1443.02ns
sending of values from observable via with_latest_from to subscriber 26.78ns 32.1113 0.83 4.40ns

ci-windows

Observable construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable construction 1.83ns 1.63038 1.12 0.76ns
Dynamic observable construction 96.19ns 96.0903 1.00 156.00ns
Specific observable construction + as_dynamic 97.55ns 76.1979 1.28 135.81ns

Observable lift

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable lift specific observer 203.13ns 153.904 1.32 1559.48ns
Specific observable lift dynamic observer 218.44ns 193.028 1.13 1499.71ns
Dynamic observable lift specific observer 345.04ns 237.236 1.45 1728.63ns
Dynamic observable lift dynamic observer 293.59ns 283.691 1.03 1634.25ns

Observable subscribe

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe specific observer 132.88ns 122.333 1.09 2245.77ns
Specific observable subscribe dynamic observer 177.96ns 122.519 1.45 1489.48ns
Dynamic observable subscribe specific observer 266.54ns 233.627 1.14 2432.35ns
Dynamic observable subscribe dynamic observer 213.29ns 196.453 1.09 1528.33ns

Observable subscribe #2

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observable subscribe lambda 140.53ns 112.914 1.24 1511.87ns
Dynamic observable subscribe lambda 265.59ns 258.566 1.03 1824.44ns
Specific observable subscribe lambda without subscription 129.13ns 108.513 1.19 1459.20ns
Dynamic observable subscribe lambda without subscription 283.21ns 257.992 1.10 1638.05ns
Specific observable subscribe specific subscriber 34.94ns 34.228 1.02 1037.10ns
Dynamic observable subscribe specific subscriber 211.97ns 150.911 1.40 1241.69ns
Specific observable subscribe dynamic observer 40.89ns 35.2092 1.16 1010.80ns
Dynamic observable subscribe dynamic observer 94.43ns 83.4755 1.13 1157.43ns

Observer construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer construction 1.81ns 1.46071 1.24 1.82ns
Dynamic observer construction 100.11ns 86.08 1.16 143.89ns
Specific observer construction + as_dynamic 105.73ns 96.2175 1.10 139.80ns

OnNext

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Specific observer OnNext 0.80ns 0.764203 1.05 0.81ns
Dynamic observer OnNext 2.20ns 2.14695 1.03 2.44ns

Subscriber construction

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
Make subsriber 105.10ns 92.5172 1.14 451.50ns
Make copy of subscriber 26.91ns 19.5833 1.37 42.98ns
Transform subsriber to dynamic 110.15ns 113.504 0.97 185.72ns

Subscription

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
composite_subscription create 117.12ns 99.9223 1.17 433.21ns
composite_subscription add 82.33ns 68.2311 1.21 190.41ns
composite_subscription unsubscribe 77.31ns 75.6964 1.02 150.64ns

buffer

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
buffer 412.30ns 714.625 0.58 5946.17ns
sending of values from observable via buffer to subscriber 7.77ns 6.73722 1.15 114.47ns

chains creation test

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
long non-state chain creation + subscribe 328.75ns 285.826 1.15 2637.15ns
long stateful chain creation + subscribe 790.72ns 800.775 0.99 4225.88ns

combine_latest

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
combine_latest construction from observable via dot + subscribe 2146.79ns 2103.25 1.02 3669.00ns
sending of values from observable via combine_latest to subscriber 56.98ns 48.6784 1.17 6.23ns

concat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
concat 3727.70ns 4069.5 0.92 12720.00ns
concat_with 4314.12ns 3780.25 1.14 13846.00ns

distinct_until_changed

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
distinct_until_changed construction from observable via dot + subscribe 221.34ns 192.474 1.15 1286.76ns
sending of values from observable via distinct_until_changed to subscriber 4.07ns 3.12764 1.30 4.82ns

first

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
first construction from observable via dot + subscribe 153.67ns 148.889 1.03 3153.18ns
sending of values from observable via first to subscriber 2.79ns 2.49594 1.12 2.13ns

foundamental sources

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
empty 73.72ns 69.3322 1.06 2891.55ns
error 138.95ns 124.833 1.11 3257.82ns
never 35.90ns 35.6688 1.01 1090.42ns

from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
from vector with int 159.02ns 141.146 1.13 3149.80ns

immediate scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 2.07ns 2.11267 0.98 530.88ns
re-schedule 10 times 117.31ns 112.637 1.04 532.59ns

just

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
just send int 81.37ns 68.9024 1.18 2907.09ns
just send variadic 120.58ns 103.493 1.17 3004.09ns

last

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
last construction from observable via dot + subscribe 271.99ns 224.535 1.21 1813.71ns
sending of values from observable via last to subscriber 4.14ns 3.81377 1.09 3.99ns

map

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
map construction from observable via dot + subscribe 106.16ns 101.539 1.05 1225.88ns
sending of values from observable via map to subscriber 4.21ns 3.90839 1.08 8.30ns

merge

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
merge 3614.20ns 3217.0 1.12 13110.30ns
merge_with 4522.50ns 3516.86 1.29 14000.00ns

observe_on

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
observe_on construction from observable via dot + subscribe 834.08ns 681.325 1.22 6612.80ns
sending of values from observable via observe_on to subscriber 93.71ns 73.0 1.28 959.00ns

on_error_resume_next

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
on_error_resume_next construction from observable via dot + subscribe 781.95ns 754.556 1.04 2210.00ns

publish_subject callbacks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
on_next 26.18ns 17.4326 1.50 47.45ns
on_error 3.38ns 2.60032 1.30 22.33ns
on_completed 5.78ns 2.90725 1.99 1.73ns

publish_subject routines

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
construct 423.98ns 319.576 1.33 774.79ns
get_observable 31.74ns 26.9833 1.18 196.85ns
get_subscriber 60.19ns 59.2186 1.02 112.77ns

repeat

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
repeat construction from observable via dot + subscribe 9200.75ns 7601.6 1.21 13465.00ns

scan

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
scan construction from observable via dot + subscribe 213.99ns 216.136 0.99 1532.05ns
sending of values from observable via scan to subscriber 6.60ns 5.34458 1.24 11.90ns

single-threaded locks

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no-lock increment 4.11ns 1.79282 2.29 .
mutex lock increment 30.99ns 27.792 1.12 .
spin-lock increment 10.63ns 11.856 0.90 .

skip

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
skip construction from observable via dot + subscribe 218.64ns 182.924 1.20 1816.00ns
sending of values from observable via skip to subscriber 5.00ns 4.72299 1.06 5.07ns

switch_on_next

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
switch_on_next construction from observable via dot + subscribe 4138.75ns 4038.12 1.02 14958.70ns
sending of values from observable via switch_on_next to subscriber 1040.43ns 996.5 1.04 3519.12ns

take

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take construction from observable via dot + subscribe 269.90ns 193.588 1.39 4878.50ns
sending of values from observable via take to subscriber 6.94ns 6.42896 1.08 7.41ns

take_last

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take_last construction from observable via dot + subscribe 388.93ns 366.079 1.06 2925.00ns
sending of values from observable via take_last to subscriber 4.91ns 3.81556 1.29 29.99ns

take_until

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
take_until construction from observable via dot + subscribe 2077.06ns 1425.33 1.46 6434.17ns
sending of values from observable via take_until to subscriber 14.95ns 9.84446 1.52 6.16ns

timeout

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
timeout construction from observable via dot + subscribe with run_loop 1600.67ns 1442.42 1.11 7934.50ns
sending of values from observable via timeout to subscriber with unreachable timeout interval with run_loop 67.04ns 66.7624 1.00 1639.80ns

trampoline scheduler

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
no any re-schedule 22.39ns 21.6996 1.03 763.95ns
re-schedule 10 times 142.20ns 111.389 1.28 786.37ns
recursively schedule 10 times 3184.00ns 2707.36 1.18 22734.50ns

window

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
window 3648.12ns 3402.1 1.07 12892.00ns
sending of values from observable via window to subscriber 1005.32ns 896.324 1.12 2000.56ns

with_latest_from

Table
Test Name Current, ns Prev, ns Ratio RxCpp current, ns
with_latest_from construction from observable via dot + subscribe 2510.92ns 2263.46 1.11 4353.33ns
sending of values from observable via with_latest_from to subscriber 40.15ns 36.2786 1.11 8.43ns

Please sign in to comment.