Skip to content

Commit

Permalink
try to do macos latest (#692)
Browse files Browse the repository at this point in the history
  • Loading branch information
victimsnino authored Dec 3, 2024
1 parent 82b8829 commit a670827
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 2 deletions.
2 changes: 2 additions & 0 deletions .github/workflows/analyzers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ jobs:
uses: jurplel/install-qt-action@v4
with:
cache: true
version: "6.2.*"

- name: get conan
uses: turtlebrowser/get-conan@main
Expand Down Expand Up @@ -102,6 +103,7 @@ jobs:
uses: jurplel/install-qt-action@v4
with:
cache: true
version: "6.2.*"

- name: get conan
uses: turtlebrowser/get-conan@main
Expand Down
8 changes: 6 additions & 2 deletions .github/workflows/ci v2.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
config: [{name: ci-ubuntu-gcc, os: ubuntu-latest},
{name: ci-ubuntu-clang, os: ubuntu-latest},
{name: ci-windows, os: windows-latest},
{name: ci-macos, os: macos-12}]
{name: ci-macos, os: macos-latest}]
build_type: [{config: Release}, {config: Debug}]

timeout-minutes: 120
Expand Down Expand Up @@ -59,6 +59,7 @@ jobs:
uses: jurplel/install-qt-action@v4
with:
cache: true
version: "6.2.*"

- name: conan detect profile
if: steps.check_cache.outputs.cache-hit != 'true' || github.event_name == 'schedule'
Expand Down Expand Up @@ -100,6 +101,7 @@ jobs:
uses: jurplel/install-qt-action@v4
with:
cache: true
version: "6.2.*"

- name: get conan
uses: turtlebrowser/get-conan@main
Expand Down Expand Up @@ -137,7 +139,7 @@ jobs:
config: [{name: ci-ubuntu-gcc, os: ubuntu-latest},
{name: ci-ubuntu-clang, os: ubuntu-latest},
{name: ci-windows, os: windows-latest},
{name: ci-macos, os: macos-12}]
{name: ci-macos, os: macos-latest}]
type: [tests, benchmarks]
build_type: [{config: Release, test_preset: ci-tests}, {config: Debug, test_preset: ci-tests-debug}]
optimization_disabled: [{mode: 0, postfix: ""}, {mode: 1, postfix: " (Optimizations disabled)"}]
Expand Down Expand Up @@ -178,6 +180,7 @@ jobs:
uses: jurplel/install-qt-action@v4
with:
cache: true
version: "6.2.*"

- name: get conan
uses: turtlebrowser/get-conan@main
Expand Down Expand Up @@ -258,6 +261,7 @@ jobs:
uses: jurplel/install-qt-action@v4
with:
cache: true
version: "6.2.*"

- name: Install project and build
env:
Expand Down

1 comment on commit a670827

@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-gcc

General

name rxcpp rpp prev rpp ratio rpp no optimization
Subscribe empty callbacks to empty observable 303.37 ns 1.85 ns 1.87 ns 0.99 1.85 ns
Subscribe empty callbacks to empty observable via pipe operator 302.80 ns 1.85 ns 1.85 ns 1.00 1.85 ns

Sources

name rxcpp rpp prev rpp ratio rpp no optimization
from array of 1 - create + subscribe + immediate 707.18 ns 0.31 ns 0.31 ns 1.00 0.31 ns
from array of 1 - create + subscribe + current_thread 1053.12 ns 3.42 ns 3.42 ns 1.00 3.70 ns
concat_as_source of just(1 immediate) create + subscribe 2288.06 ns 115.78 ns 114.49 ns 1.01 123.39 ns
defer from array of 1 - defer + create + subscribe + immediate 722.90 ns 0.31 ns 0.31 ns 1.00 0.31 ns
interval - interval + take(3) + subscribe + immediate 2150.99 ns 59.23 ns 59.39 ns 1.00 59.23 ns
interval - interval + take(3) + subscribe + current_thread 3025.91 ns 32.43 ns 32.44 ns 1.00 33.97 ns
from array of 1 - create + as_blocking + subscribe + new_thread 29387.79 ns 27848.76 ns 28224.48 ns 0.99 28867.95 ns
from array of 1000 - create + as_blocking + subscribe + new_thread 37237.62 ns 51871.00 ns 52435.10 ns 0.99 48720.05 ns
concat_as_source of just(1 immediate) and just(1,2 immediate)create + subscribe 3463.97 ns 134.57 ns 135.54 ns 0.99 163.64 ns

Filtering Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+take(1)+subscribe 1090.16 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just+filter(true)+subscribe 882.28 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just(1,2)+skip(1)+subscribe 998.97 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just(1,1,2)+distinct_until_changed()+subscribe 857.07 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just(1,2)+first()+subscribe 1293.46 ns 0.31 ns 0.32 ns 0.98 0.31 ns
immediate_just(1,2)+last()+subscribe 900.08 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just+take_last(1)+subscribe 1102.24 ns 17.91 ns 24.38 ns 0.73 19.15 ns
immediate_just(1,2,3)+element_at(1)+subscribe 833.74 ns 0.31 ns 0.31 ns 1.00 0.31 ns

Schedulers

name rxcpp rpp prev rpp ratio rpp no optimization
immediate scheduler create worker + schedule 276.57 ns 1.54 ns 1.54 ns 1.00 0.46 ns
current_thread scheduler create worker + schedule 362.05 ns 4.94 ns 4.94 ns 1.00 4.33 ns
current_thread scheduler create worker + schedule + recursive schedule 846.51 ns 60.82 ns 60.75 ns 1.00 66.29 ns

Transforming Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+map(v*2)+subscribe 836.57 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just+scan(10, std::plus)+subscribe 906.97 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just+flat_map(immediate_just(v*2))+subscribe 2377.02 ns 143.11 ns 138.50 ns 1.03 162.93 ns
immediate_just+buffer(2)+subscribe 1584.51 ns 13.62 ns 13.89 ns 0.98 18.12 ns
immediate_just+window(2)+subscribe + subscsribe inner 2392.64 ns 1341.59 ns 1289.64 ns 1.04 1360.04 ns

Conditional Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+take_while(false)+subscribe 825.83 ns - - 0.00 -
immediate_just+take_while(true)+subscribe 857.15 ns 0.31 ns 0.31 ns 1.00 0.31 ns

Utility Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just(1)+subscribe_on(immediate)+subscribe 2004.57 ns 0.31 ns 0.31 ns 1.00 0.31 ns

Combining Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 3466.84 ns 144.86 ns 147.17 ns 0.98 172.38 ns
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 3659.37 ns 157.28 ns 159.89 ns 0.98 162.00 ns
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 138.68 ns 131.97 ns 1.05 145.21 ns
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 3600.44 ns 392.73 ns 355.88 ns 1.10 392.47 ns
immediate_just(1) + zip(immediate_just(2)) + subscribe 2108.25 ns 214.03 ns 212.95 ns 1.01 206.53 ns
immediate_just(immediate_just(1), immediate_just(1)) + concat() + subscribe 3135.22 ns 222.68 ns 236.87 ns 0.94 250.65 ns

Subjects

name rxcpp rpp prev rpp ratio rpp no optimization
publish_subject with 1 observer - on_next 34.46 ns 14.72 ns 14.79 ns 1.00 15.14 ns
subscribe 100 observers to publish_subject 199322.50 ns 15772.85 ns 16014.13 ns 0.98 16337.97 ns
100 on_next to 100 observers to publish_subject 26956.39 ns 17282.15 ns 17179.79 ns 1.01 19228.15 ns

Scenarios

name rxcpp rpp prev rpp ratio rpp no optimization
basic sample 1392.16 ns 13.28 ns 13.27 ns 1.00 24.38 ns
basic sample with immediate scheduler 1412.40 ns 5.55 ns 5.55 ns 1.00 19.13 ns
mix operators with disposables and without disposables 6416.31 ns 1443.66 ns 1380.10 ns 1.05 1855.99 ns
single disposable and looooooong indentity chain 23934.93 ns 978.48 ns 990.07 ns 0.99 4718.11 ns

Aggregating Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+reduce(10, std::plus)+subscribe 917.71 ns 0.31 ns 0.31 ns 1.00 0.31 ns

Error Handling Operators

name rxcpp rpp prev rpp ratio rpp no optimization
create(on_next(1), on_error())+on_error_resume_next(immediate_just(2)))+subscribe 2078.11 ns 1008.47 ns 1013.02 ns 1.00 992.92 ns
create(on_error())+retry(1)+subscribe 619.05 ns 110.24 ns 109.92 ns 1.00 121.42 ns

ci-macos

General

name rxcpp rpp prev rpp ratio rpp no optimization
Subscribe empty callbacks to empty observable 396.25 ns 0.50 ns 0.70 ns 0.72 0.48 ns
Subscribe empty callbacks to empty observable via pipe operator 387.64 ns 0.50 ns 0.70 ns 0.72 0.51 ns

Sources

name rxcpp rpp prev rpp ratio rpp no optimization
from array of 1 - create + subscribe + immediate 796.56 ns 0.34 ns 0.23 ns 1.45 0.34 ns
from array of 1 - create + subscribe + current_thread 968.76 ns 4.38 ns 31.62 ns 0.14 4.53 ns
concat_as_source of just(1 immediate) create + subscribe 2198.35 ns 181.96 ns 315.33 ns 0.58 434.23 ns
defer from array of 1 - defer + create + subscribe + immediate 816.85 ns 0.49 ns 0.23 ns 2.09 0.34 ns
interval - interval + take(3) + subscribe + immediate 2263.15 ns 55.08 ns 114.76 ns 0.48 55.34 ns
interval - interval + take(3) + subscribe + current_thread 2887.18 ns 32.12 ns 95.94 ns 0.33 32.41 ns
from array of 1 - create + as_blocking + subscribe + new_thread 21917.83 ns 51177.73 ns 81457.31 ns 0.63 44380.21 ns
from array of 1000 - create + as_blocking + subscribe + new_thread 47511.36 ns 31483.11 ns 88639.18 ns 0.36 37660.71 ns
concat_as_source of just(1 immediate) and just(1,2 immediate)create + subscribe 3210.59 ns 237.56 ns 365.93 ns 0.65 197.43 ns

Filtering Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+take(1)+subscribe 1152.58 ns 0.34 ns 0.24 ns 1.40 0.34 ns
immediate_just+filter(true)+subscribe 1033.20 ns 0.34 ns 0.23 ns 1.44 0.34 ns
immediate_just(1,2)+skip(1)+subscribe 1142.83 ns 0.34 ns 0.23 ns 1.44 0.34 ns
immediate_just(1,1,2)+distinct_until_changed()+subscribe 1712.53 ns 0.35 ns 0.47 ns 0.74 0.35 ns
immediate_just(1,2)+first()+subscribe 1372.47 ns 0.34 ns 0.23 ns 1.44 0.35 ns
immediate_just(1,2)+last()+subscribe 1017.49 ns 0.98 ns 0.24 ns 4.11 1.51 ns
immediate_just+take_last(1)+subscribe 1224.57 ns 0.34 ns 0.23 ns 1.44 0.34 ns
immediate_just(1,2,3)+element_at(1)+subscribe 1418.01 ns 0.48 ns 0.23 ns 2.06 0.34 ns

Schedulers

name rxcpp rpp prev rpp ratio rpp no optimization
immediate scheduler create worker + schedule 744.50 ns 1.47 ns 0.93 ns 1.57 0.69 ns
current_thread scheduler create worker + schedule 464.13 ns 9.49 ns 32.34 ns 0.29 4.65 ns
current_thread scheduler create worker + schedule + recursive schedule 746.53 ns 89.21 ns 199.81 ns 0.45 146.18 ns

Transforming Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+map(v*2)+subscribe 1018.99 ns 2.65 ns 4.20 ns 0.63 2.78 ns
immediate_just+scan(10, std::plus)+subscribe 994.64 ns 0.43 ns 0.47 ns 0.91 0.34 ns
immediate_just+flat_map(immediate_just(v*2))+subscribe 2149.06 ns 196.47 ns 375.66 ns 0.52 203.58 ns
immediate_just+buffer(2)+subscribe 1036.37 ns 16.51 ns 63.19 ns 0.26 17.56 ns
immediate_just+window(2)+subscribe + subscsribe inner 2092.49 ns 1073.91 ns 2399.26 ns 0.45 1129.99 ns

Conditional Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+take_while(false)+subscribe 848.72 ns - - 0.00 -
immediate_just+take_while(true)+subscribe 866.98 ns 0.34 ns 0.23 ns 1.44 0.34 ns

Utility Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just(1)+subscribe_on(immediate)+subscribe 1983.19 ns 1.86 ns 4.91 ns 0.38 1.95 ns

Combining Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 3019.15 ns 400.56 ns 420.19 ns 0.95 226.39 ns
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 3250.23 ns 214.54 ns 411.06 ns 0.52 220.60 ns
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 218.46 ns 452.01 ns 0.48 228.03 ns
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 3217.09 ns 536.10 ns 929.76 ns 0.58 547.71 ns
immediate_just(1) + zip(immediate_just(2)) + subscribe 2135.96 ns 348.19 ns 830.56 ns 0.42 372.91 ns
immediate_just(immediate_just(1), immediate_just(1)) + concat() + subscribe 3017.22 ns 346.86 ns 647.10 ns 0.54 346.19 ns

Subjects

name rxcpp rpp prev rpp ratio rpp no optimization
publish_subject with 1 observer - on_next 44.35 ns 20.36 ns 49.32 ns 0.41 22.13 ns
subscribe 100 observers to publish_subject 139055.56 ns 16738.97 ns 41087.04 ns 0.41 16832.69 ns
100 on_next to 100 observers to publish_subject 37295.68 ns 14971.43 ns 20892.27 ns 0.72 15180.76 ns

Scenarios

name rxcpp rpp prev rpp ratio rpp no optimization
basic sample 1300.69 ns 16.85 ns 68.76 ns 0.25 26.74 ns
basic sample with immediate scheduler 1633.09 ns 10.73 ns 18.74 ns 0.57 13.15 ns
mix operators with disposables and without disposables 5685.34 ns 1547.98 ns 3292.46 ns 0.47 1834.12 ns
single disposable and looooooong indentity chain 16224.18 ns 1660.96 ns 1621.74 ns 1.02 3849.00 ns

Aggregating Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+reduce(10, std::plus)+subscribe 1029.29 ns 0.37 ns 0.23 ns 1.60 0.34 ns

Error Handling Operators

name rxcpp rpp prev rpp ratio rpp no optimization
create(on_next(1), on_error())+on_error_resume_next(immediate_just(2)))+subscribe 3627.03 ns 2812.15 ns 4163.59 ns 0.68 2783.90 ns
create(on_error())+retry(1)+subscribe 1446.48 ns 210.12 ns 277.73 ns 0.76 183.74 ns

ci-ubuntu-clang

General

name rxcpp rpp prev rpp ratio rpp no optimization
Subscribe empty callbacks to empty observable 274.39 ns 1.54 ns 0.63 ns 2.43 1.54 ns
Subscribe empty callbacks to empty observable via pipe operator 272.40 ns 1.54 ns 0.63 ns 2.43 1.54 ns

Sources

name rxcpp rpp prev rpp ratio rpp no optimization
from array of 1 - create + subscribe + immediate 567.15 ns 0.31 ns 0.31 ns 1.00 0.31 ns
from array of 1 - create + subscribe + current_thread 798.60 ns 4.01 ns 4.01 ns 1.00 4.01 ns
concat_as_source of just(1 immediate) create + subscribe 2328.25 ns 129.02 ns 128.32 ns 1.01 129.11 ns
defer from array of 1 - defer + create + subscribe + immediate 780.81 ns 0.31 ns 0.31 ns 1.00 0.31 ns
interval - interval + take(3) + subscribe + immediate 2227.12 ns 58.26 ns 58.26 ns 1.00 58.31 ns
interval - interval + take(3) + subscribe + current_thread 3212.27 ns 30.86 ns 30.86 ns 1.00 31.47 ns
from array of 1 - create + as_blocking + subscribe + new_thread 30197.69 ns 28121.43 ns 27977.50 ns 1.01 28989.75 ns
from array of 1000 - create + as_blocking + subscribe + new_thread 39101.73 ns 35289.03 ns 33816.21 ns 1.04 37871.10 ns
concat_as_source of just(1 immediate) and just(1,2 immediate)create + subscribe 4304.84 ns 148.65 ns 146.78 ns 1.01 148.60 ns

Filtering Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+take(1)+subscribe 1171.83 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just+filter(true)+subscribe 867.48 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just(1,2)+skip(1)+subscribe 1100.20 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just(1,1,2)+distinct_until_changed()+subscribe 864.50 ns 0.62 ns 0.62 ns 1.01 0.31 ns
immediate_just(1,2)+first()+subscribe 1366.36 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just(1,2)+last()+subscribe 1003.06 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just+take_last(1)+subscribe 1189.62 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just(1,2,3)+element_at(1)+subscribe 878.26 ns 0.31 ns 0.31 ns 1.00 0.31 ns

Schedulers

name rxcpp rpp prev rpp ratio rpp no optimization
immediate scheduler create worker + schedule 278.48 ns 0.63 ns 1.54 ns 0.41 0.63 ns
current_thread scheduler create worker + schedule 400.79 ns 4.01 ns 4.02 ns 1.00 4.33 ns
current_thread scheduler create worker + schedule + recursive schedule 857.13 ns 57.13 ns 55.00 ns 1.04 55.25 ns

Transforming Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+map(v*2)+subscribe 862.48 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just+scan(10, std::plus)+subscribe 964.92 ns 0.31 ns 0.31 ns 1.00 0.32 ns
immediate_just+flat_map(immediate_just(v*2))+subscribe 2243.71 ns 140.08 ns 140.42 ns 1.00 137.00 ns
immediate_just+buffer(2)+subscribe 1509.73 ns 13.89 ns 13.58 ns 1.02 14.20 ns
immediate_just+window(2)+subscribe + subscsribe inner 2450.82 ns 912.01 ns 944.11 ns 0.97 921.90 ns

Conditional Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+take_while(false)+subscribe 852.87 ns - - 0.00 -
immediate_just+take_while(true)+subscribe 863.21 ns 0.31 ns 0.31 ns 1.00 0.31 ns

Utility Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just(1)+subscribe_on(immediate)+subscribe 1975.05 ns 0.31 ns 0.31 ns 1.00 0.31 ns

Combining Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 3318.64 ns 160.86 ns 161.06 ns 1.00 155.13 ns
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 3725.07 ns 139.99 ns 142.24 ns 0.98 139.30 ns
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 142.27 ns 140.85 ns 1.01 138.16 ns
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 3365.18 ns 376.64 ns 377.50 ns 1.00 378.28 ns
immediate_just(1) + zip(immediate_just(2)) + subscribe 2244.51 ns 196.99 ns 194.72 ns 1.01 197.90 ns
immediate_just(immediate_just(1), immediate_just(1)) + concat() + subscribe 3197.39 ns 223.33 ns 221.41 ns 1.01 231.00 ns

Subjects

name rxcpp rpp prev rpp ratio rpp no optimization
publish_subject with 1 observer - on_next 54.05 ns 17.74 ns 17.49 ns 1.01 18.26 ns
subscribe 100 observers to publish_subject 212871.60 ns 16104.08 ns 16169.02 ns 1.00 16067.99 ns
100 on_next to 100 observers to publish_subject 35781.50 ns 23498.69 ns 23529.20 ns 1.00 23611.43 ns

Scenarios

name rxcpp rpp prev rpp ratio rpp no optimization
basic sample 1311.32 ns 11.11 ns 11.11 ns 1.00 20.37 ns
basic sample with immediate scheduler 1310.11 ns 5.86 ns 5.86 ns 1.00 6.79 ns
mix operators with disposables and without disposables 6351.30 ns 1161.91 ns 1163.51 ns 1.00 1493.14 ns
single disposable and looooooong indentity chain 27919.46 ns 1257.04 ns 1246.28 ns 1.01 4682.71 ns

Aggregating Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+reduce(10, std::plus)+subscribe 989.10 ns 0.31 ns 0.31 ns 1.00 0.31 ns

Error Handling Operators

name rxcpp rpp prev rpp ratio rpp no optimization
create(on_next(1), on_error())+on_error_resume_next(immediate_just(2)))+subscribe 2162.49 ns 1152.91 ns 1160.81 ns 0.99 1151.09 ns
create(on_error())+retry(1)+subscribe 654.16 ns 138.23 ns 139.35 ns 0.99 138.11 ns

ci-windows

General

name rxcpp rpp prev rpp ratio rpp no optimization
Subscribe empty callbacks to empty observable 804.25 ns 2.16 ns 1.85 ns 1.17 2.16 ns
Subscribe empty callbacks to empty observable via pipe operator 793.64 ns 2.16 ns 1.85 ns 1.17 2.16 ns

Sources

name rxcpp rpp prev rpp ratio rpp no optimization
from array of 1 - create + subscribe + immediate 1426.83 ns 5.86 ns 5.86 ns 1.00 4.94 ns
from array of 1 - create + subscribe + current_thread 1435.25 ns 15.74 ns 15.75 ns 1.00 15.44 ns
concat_as_source of just(1 immediate) create + subscribe 3996.56 ns 164.88 ns 164.78 ns 1.00 176.85 ns
defer from array of 1 - defer + create + subscribe + immediate 1193.90 ns 5.55 ns 5.55 ns 1.00 5.24 ns
interval - interval + take(3) + subscribe + immediate 3038.11 ns 139.98 ns 141.04 ns 0.99 141.95 ns
interval - interval + take(3) + subscribe + current_thread 3414.86 ns 59.73 ns 62.51 ns 0.96 63.24 ns
from array of 1 - create + as_blocking + subscribe + new_thread 119830.00 ns 110700.00 ns 112854.55 ns 0.98 115266.67 ns
from array of 1000 - create + as_blocking + subscribe + new_thread 127433.33 ns 129950.00 ns 132811.11 ns 0.98 133262.50 ns
concat_as_source of just(1 immediate) and just(1,2 immediate)create + subscribe 5342.63 ns 203.76 ns 200.53 ns 1.02 204.05 ns

Filtering Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+take(1)+subscribe 1828.39 ns 19.43 ns 19.73 ns 0.98 20.35 ns
immediate_just+filter(true)+subscribe 1316.49 ns 18.50 ns 18.81 ns 0.98 21.61 ns
immediate_just(1,2)+skip(1)+subscribe 1723.95 ns 17.91 ns 18.50 ns 0.97 20.38 ns
immediate_just(1,1,2)+distinct_until_changed()+subscribe 1355.90 ns 20.71 ns 23.46 ns 0.88 25.56 ns
immediate_just(1,2)+first()+subscribe 2357.20 ns 18.20 ns 17.28 ns 1.05 18.51 ns
immediate_just(1,2)+last()+subscribe 1457.22 ns 19.12 ns 18.51 ns 1.03 22.21 ns
immediate_just+take_last(1)+subscribe 2003.69 ns 63.83 ns 64.71 ns 0.99 67.60 ns
immediate_just(1,2,3)+element_at(1)+subscribe 1346.03 ns 22.41 ns 21.91 ns 1.02 22.83 ns

Schedulers

name rxcpp rpp prev rpp ratio rpp no optimization
immediate scheduler create worker + schedule 483.61 ns 4.94 ns 4.94 ns 1.00 4.32 ns
current_thread scheduler create worker + schedule 656.30 ns 11.79 ns 11.18 ns 1.05 11.63 ns
current_thread scheduler create worker + schedule + recursive schedule 1318.73 ns 96.91 ns 100.56 ns 0.96 103.02 ns

Transforming Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+map(v*2)+subscribe 1311.69 ns 18.82 ns 18.81 ns 1.00 21.28 ns
immediate_just+scan(10, std::plus)+subscribe 1436.15 ns 20.96 ns 20.98 ns 1.00 22.81 ns
immediate_just+flat_map(immediate_just(v*2))+subscribe 3467.08 ns 180.47 ns 181.42 ns 0.99 208.61 ns
immediate_just+buffer(2)+subscribe 2296.81 ns 63.88 ns 64.05 ns 1.00 69.51 ns
immediate_just+window(2)+subscribe + subscsribe inner 3997.28 ns 1296.31 ns 1292.80 ns 1.00 1331.65 ns

Conditional Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+take_while(false)+subscribe 1336.00 ns 17.57 ns 17.58 ns 1.00 19.81 ns
immediate_just+take_while(true)+subscribe 1329.82 ns 18.50 ns 18.81 ns 0.98 24.19 ns

Utility Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just(1)+subscribe_on(immediate)+subscribe 3246.28 ns 11.10 ns 11.11 ns 1.00 11.10 ns

Combining Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 5108.72 ns 201.00 ns 200.49 ns 1.00 220.43 ns
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 5912.89 ns 190.02 ns 185.70 ns 1.02 192.69 ns
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 187.60 ns 188.17 ns 1.00 194.41 ns
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 5384.11 ns 438.39 ns 434.23 ns 1.01 452.42 ns
immediate_just(1) + zip(immediate_just(2)) + subscribe 3562.54 ns 524.99 ns 520.39 ns 1.01 542.97 ns
immediate_just(immediate_just(1), immediate_just(1)) + concat() + subscribe 5471.43 ns 322.99 ns 326.12 ns 0.99 342.64 ns

Subjects

name rxcpp rpp prev rpp ratio rpp no optimization
publish_subject with 1 observer - on_next 36.17 ns 19.83 ns 19.87 ns 1.00 20.86 ns
subscribe 100 observers to publish_subject 262600.00 ns 27343.90 ns 27747.50 ns 0.99 28297.37 ns
100 on_next to 100 observers to publish_subject 55342.86 ns 32690.32 ns 32656.25 ns 1.00 39192.59 ns

Scenarios

name rxcpp rpp prev rpp ratio rpp no optimization
basic sample 2156.30 ns 96.37 ns 96.81 ns 1.00 112.32 ns
basic sample with immediate scheduler 1884.64 ns 67.02 ns 69.02 ns 0.97 83.21 ns
mix operators with disposables and without disposables 9857.41 ns 1933.63 ns 1903.65 ns 1.02 2621.72 ns
single disposable and looooooong indentity chain 26737.21 ns 1725.30 ns 1744.43 ns 0.99 6518.47 ns

Aggregating Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+reduce(10, std::plus)+subscribe 1447.66 ns 19.12 ns 19.43 ns 0.98 21.90 ns

Error Handling Operators

name rxcpp rpp prev rpp ratio rpp no optimization
create(on_next(1), on_error())+on_error_resume_next(immediate_just(2)))+subscribe 2165.27 ns 387.48 ns 352.38 ns 1.10 364.40 ns
create(on_error())+retry(1)+subscribe 1563.99 ns 143.16 ns 141.50 ns 1.01 139.65 ns

Please sign in to comment.