Skip to content

Commit

Permalink
try to speedup cache (#663)
Browse files Browse the repository at this point in the history
* try to speedup cache

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
  • Loading branch information
victimsnino and pre-commit-ci[bot] authored Oct 14, 2024
1 parent 16fe752 commit f9662b4
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 6 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/analyzers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ jobs:
path: |
~/.conan2
/Users/runner/.conan2/
key: deps-ci-ubuntu-clang-Release-${{ hashFiles('**/conanfile.py') }}
key: deps-ci-ubuntu-clang-Release-${{ hashFiles('**/conanfile.py') }}-${{ hashFiles('**/CMakePresets.json') }}
restore-keys: deps-ci-ubuntu-clang-Release

- name: conan detect profile
Expand Down Expand Up @@ -112,7 +112,7 @@ jobs:
path: |
~/.conan2
/Users/runner/.conan2/
key: deps-ci-ubuntu-clang-Release-${{ hashFiles('**/conanfile.py') }}
key: deps-ci-ubuntu-clang-Release-${{ hashFiles('**/conanfile.py') }}-${{ hashFiles('**/CMakePresets.json') }}
restore-keys: deps-ci-ubuntu-clang-Release

- name: conan detect profile
Expand Down
12 changes: 8 additions & 4 deletions .github/workflows/ci v2.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,20 +53,24 @@ jobs:
- name: get conan
uses: turtlebrowser/get-conan@main

- name: cache deps
- name: check cache
uses: actions/cache@v4
id: check_cache
with:
path: |
~/.conan2
/Users/runner/.conan2/
key: deps-${{ matrix.config.name }}-${{ matrix.build_type.config }}-${{ hashFiles('**/conanfile.py') }}
key: deps-${{ matrix.config.name }}-${{ matrix.build_type.config }}-${{ hashFiles('**/conanfile.py') }}-${{ hashFiles('**/CMakePresets.json') }}
restore-keys: deps-${{ matrix.config.name }}-${{ matrix.build_type.config }}
lookup-only: true

- name: conan detect profile
if: steps.check_cache.outputs.cache-hit != 'true' || github.event_name == 'schedule'
run: |
conan profile detect --force
- name: Run CMake
if: steps.check_cache.outputs.cache-hit != 'true' || github.event_name == 'schedule'
uses: lukka/run-cmake@v10
with:
configurePreset: ${{ matrix.config.name }}-tests
Expand Down Expand Up @@ -110,7 +114,7 @@ jobs:
path: |
~/.conan2
/Users/runner/.conan2/
key: deps-ci-ubuntu-clang-Release-${{ hashFiles('**/conanfile.py') }}
key: deps-ci-ubuntu-clang-Release-${{ hashFiles('**/conanfile.py') }}-${{ hashFiles('**/CMakePresets.json') }}
restore-keys: deps-ci-ubuntu-clang-Release

- name: conan detect profile
Expand Down Expand Up @@ -187,7 +191,7 @@ jobs:
path: |
~/.conan2
/Users/runner/.conan2/
key: deps-${{ matrix.config.name }}-${{ matrix.build_type.config }}-${{ hashFiles('**/conanfile.py') }}
key: deps-${{ matrix.config.name }}-${{ matrix.build_type.config }}-${{ hashFiles('**/conanfile.py') }}-${{ hashFiles('**/CMakePresets.json') }}
restore-keys: deps-${{ matrix.config.name }}-${{ matrix.build_type.config }}

- name: conan detect profile
Expand Down

1 comment on commit f9662b4

@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
Subscribe empty callbacks to empty observable 301.83 ns 2.16 ns 2.16 ns 1.00
Subscribe empty callbacks to empty observable via pipe operator 302.52 ns 2.16 ns 2.16 ns 1.00

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 685.36 ns 0.31 ns 0.31 ns 1.00
from array of 1 - create + subscribe + current_thread 1032.11 ns 3.70 ns 3.71 ns 1.00
concat_as_source of just(1 immediate) create + subscribe 2252.98 ns 142.18 ns 144.18 ns 0.99
defer from array of 1 - defer + create + subscribe + immediate 731.83 ns 0.31 ns 0.31 ns 1.00
interval - interval + take(3) + subscribe + immediate 2161.90 ns 59.19 ns 59.59 ns 0.99
interval - interval + take(3) + subscribe + current_thread 3048.01 ns 32.40 ns 32.40 ns 1.00
from array of 1 - create + as_blocking + subscribe + new_thread 30831.55 ns 28056.54 ns 27714.29 ns 1.01
from array of 1000 - create + as_blocking + subscribe + new_thread 39436.41 ns 51616.85 ns 50450.63 ns 1.02
concat_as_source of just(1 immediate) and just(1,2 immediate)create + subscribe 3428.37 ns 214.70 ns 215.76 ns 1.00

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 1084.16 ns 0.31 ns 0.31 ns 1.00
immediate_just+filter(true)+subscribe 844.91 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+skip(1)+subscribe 988.04 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,1,2)+distinct_until_changed()+subscribe 838.14 ns 0.31 ns 0.31 ns 0.99
immediate_just(1,2)+first()+subscribe 1323.78 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+last()+subscribe 920.47 ns 0.31 ns 0.31 ns 0.99
immediate_just+take_last(1)+subscribe 1110.66 ns 18.53 ns 19.02 ns 0.97
immediate_just(1,2,3)+element_at(1)+subscribe 824.62 ns 0.31 ns 0.31 ns 1.00

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 265.84 ns 2.16 ns 5.31 ns 0.41
current_thread scheduler create worker + schedule 366.73 ns 5.87 ns 10.32 ns 0.57
current_thread scheduler create worker + schedule + recursive schedule 837.93 ns 55.46 ns 63.33 ns 0.88

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 874.73 ns 0.31 ns 0.32 ns 0.97
immediate_just+scan(10, std::plus)+subscribe 893.72 ns 0.31 ns 0.31 ns 1.00
immediate_just+flat_map(immediate_just(v*2))+subscribe 2362.86 ns 195.30 ns 252.76 ns 0.77
immediate_just+buffer(2)+subscribe 1586.26 ns 14.30 ns 13.90 ns 1.03
immediate_just+window(2)+subscribe + subscsribe inner 2419.73 ns 1368.13 ns 1692.57 ns 0.81

Conditional Operators

name rxcpp rpp prev rpp ratio
immediate_just+take_while(false)+subscribe 829.89 ns - - 0.00
immediate_just+take_while(true)+subscribe 842.11 ns 0.31 ns 0.32 ns 0.95

Utility Operators

name rxcpp rpp prev rpp ratio
immediate_just(1)+subscribe_on(immediate)+subscribe 1955.16 ns 0.31 ns 0.71 ns 0.43

Combining Operators

name rxcpp rpp prev rpp ratio
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 3411.42 ns 237.31 ns 301.54 ns 0.79
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 3617.64 ns 191.93 ns 199.66 ns 0.96
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 180.20 ns 335.78 ns 0.54
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 3548.31 ns 1258.96 ns 1540.45 ns 0.82
immediate_just(1) + zip(immediate_just(2)) + subscribe 2149.58 ns 237.41 ns 240.04 ns 0.99

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 34.45 ns 14.64 ns 14.64 ns 1.00
subscribe 100 observers to publish_subject 198863.17 ns 16005.26 ns 25168.62 ns 0.64
100 on_next to 100 observers to publish_subject 29240.49 ns 18816.78 ns 18569.77 ns 1.01

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 1395.35 ns 12.66 ns 12.66 ns 1.00
basic sample with immediate scheduler 1332.38 ns 5.55 ns 5.55 ns 1.00

Aggregating Operators

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

Error Handling Operators

name rxcpp rpp prev rpp ratio
create(on_next(1), on_error())+on_error_resume_next(immediate_just(2)))+subscribe 2355.04 ns 1005.77 ns 965.13 ns 1.04
create(on_error())+retry(1)+subscribe 670.46 ns 139.21 ns 122.00 ns 1.14

ci-macos

General

name rxcpp rpp prev rpp ratio
Subscribe empty callbacks to empty observable 1102.03 ns 4.34 ns 7.47 ns 0.58
Subscribe empty callbacks to empty observable via pipe operator 3388.48 ns 4.40 ns 15.00 ns 0.29

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 14431.65 ns 0.63 ns 0.85 ns 0.74
from array of 1 - create + subscribe + current_thread 2738.75 ns 210.24 ns 206.48 ns 1.02
concat_as_source of just(1 immediate) create + subscribe 5452.21 ns 434.23 ns 622.39 ns 0.70
defer from array of 1 - defer + create + subscribe + immediate 2048.74 ns 0.24 ns 0.41 ns 0.58
interval - interval + take(3) + subscribe + immediate 5069.63 ns 115.87 ns 149.45 ns 0.78
interval - interval + take(3) + subscribe + current_thread 6020.71 ns 94.23 ns 130.42 ns 0.72
from array of 1 - create + as_blocking + subscribe + new_thread 87629.27 ns 81092.50 ns 3226289.00 ns 0.03
from array of 1000 - create + as_blocking + subscribe + new_thread 93667.25 ns 94724.83 ns 1284963.00 ns 0.07
concat_as_source of just(1 immediate) and just(1,2 immediate)create + subscribe 8515.22 ns 620.67 ns 825.61 ns 0.75

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 3035.93 ns 0.24 ns 0.34 ns 0.71
immediate_just+filter(true)+subscribe 2107.24 ns 0.23 ns 1.30 ns 0.18
immediate_just(1,2)+skip(1)+subscribe 2753.04 ns 0.23 ns 0.38 ns 0.61
immediate_just(1,1,2)+distinct_until_changed()+subscribe 2085.44 ns 0.48 ns 4.20 ns 0.11
immediate_just(1,2)+first()+subscribe 3185.44 ns 0.23 ns 0.85 ns 0.28
immediate_just(1,2)+last()+subscribe 2386.12 ns 0.23 ns 1.27 ns 0.18
immediate_just+take_last(1)+subscribe 3013.30 ns 0.23 ns 1.33 ns 0.18
immediate_just(1,2,3)+element_at(1)+subscribe 2128.36 ns 0.23 ns 1.31 ns 0.18

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 848.53 ns 4.25 ns 5.44 ns 0.78
current_thread scheduler create worker + schedule 1187.21 ns 36.36 ns 51.23 ns 0.71
current_thread scheduler create worker + schedule + recursive schedule 1990.15 ns 201.23 ns 266.40 ns 0.76

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 2125.95 ns 4.44 ns 5.78 ns 0.77
immediate_just+scan(10, std::plus)+subscribe 2370.86 ns 0.47 ns 0.60 ns 0.77
immediate_just+flat_map(immediate_just(v*2))+subscribe 5353.59 ns 511.33 ns 522.72 ns 0.98
immediate_just+buffer(2)+subscribe 2506.88 ns 64.94 ns 68.00 ns 0.96
immediate_just+window(2)+subscribe + subscsribe inner 5531.54 ns 2459.87 ns 3206.55 ns 0.77

Conditional Operators

name rxcpp rpp prev rpp ratio
immediate_just+take_while(false)+subscribe 2090.43 ns - - 0.00
immediate_just+take_while(true)+subscribe 2102.26 ns 0.23 ns 0.31 ns 0.75

Utility Operators

name rxcpp rpp prev rpp ratio
immediate_just(1)+subscribe_on(immediate)+subscribe 4934.29 ns 4.90 ns 6.87 ns 0.71

Combining Operators

name rxcpp rpp prev rpp ratio
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 7527.15 ns 596.73 ns 689.77 ns 0.87
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 8465.94 ns 511.09 ns 1515.69 ns 0.34
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 579.80 ns 1794.92 ns 0.32
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 7975.01 ns 1916.86 ns 5748.71 ns 0.33
immediate_just(1) + zip(immediate_just(2)) + subscribe 5146.41 ns 927.82 ns 4657.14 ns 0.20

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 76.74 ns 49.12 ns 84.78 ns 0.58
subscribe 100 observers to publish_subject 345568.00 ns 41022.92 ns 59110.00 ns 0.69
100 on_next to 100 observers to publish_subject 52377.48 ns 18796.37 ns 50365.86 ns 0.37

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 2771.51 ns 68.87 ns 281.20 ns 0.24
basic sample with immediate scheduler 2754.23 ns 18.72 ns 56.23 ns 0.33

Aggregating Operators

name rxcpp rpp prev rpp ratio
immediate_just+reduce(10, std::plus)+subscribe 2370.45 ns 0.23 ns 0.32 ns 0.74

Error Handling Operators

name rxcpp rpp prev rpp ratio
create(on_next(1), on_error())+on_error_resume_next(immediate_just(2)))+subscribe 6543.06 ns 3940.35 ns 4974.96 ns 0.79
create(on_error())+retry(1)+subscribe 1814.96 ns 363.49 ns 519.21 ns 0.70

ci-ubuntu-clang

General

name rxcpp rpp prev rpp ratio
Subscribe empty callbacks to empty observable 266.88 ns 1.55 ns 1.54 ns 1.00
Subscribe empty callbacks to empty observable via pipe operator 265.82 ns 1.54 ns 1.54 ns 1.00

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 559.27 ns 0.31 ns 0.31 ns 0.99
from array of 1 - create + subscribe + current_thread 800.96 ns 4.02 ns 4.01 ns 1.00
concat_as_source of just(1 immediate) create + subscribe 2376.33 ns 182.40 ns 187.18 ns 0.97
defer from array of 1 - defer + create + subscribe + immediate 772.74 ns 0.31 ns 0.31 ns 1.00
interval - interval + take(3) + subscribe + immediate 2206.21 ns 58.26 ns 58.30 ns 1.00
interval - interval + take(3) + subscribe + current_thread 3137.12 ns 30.91 ns 30.88 ns 1.00
from array of 1 - create + as_blocking + subscribe + new_thread 28640.97 ns 28960.63 ns 28417.28 ns 1.02
from array of 1000 - create + as_blocking + subscribe + new_thread 37047.30 ns 35947.77 ns 35287.29 ns 1.02
concat_as_source of just(1 immediate) and just(1,2 immediate)create + subscribe 3711.11 ns 301.43 ns 307.41 ns 0.98

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 1139.70 ns 0.31 ns 0.31 ns 1.00
immediate_just+filter(true)+subscribe 835.26 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+skip(1)+subscribe 1067.53 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,1,2)+distinct_until_changed()+subscribe 864.54 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+first()+subscribe 1382.20 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+last()+subscribe 992.88 ns 0.31 ns 0.31 ns 1.00
immediate_just+take_last(1)+subscribe 1188.81 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2,3)+element_at(1)+subscribe 859.80 ns 0.31 ns 0.31 ns 1.00

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 276.87 ns 1.55 ns 1.54 ns 1.00
current_thread scheduler create worker + schedule 391.84 ns 4.59 ns 4.59 ns 1.00
current_thread scheduler create worker + schedule + recursive schedule 851.08 ns 55.53 ns 55.55 ns 1.00

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 845.02 ns 0.31 ns 0.31 ns 1.00
immediate_just+scan(10, std::plus)+subscribe 950.59 ns 0.31 ns 0.31 ns 1.00
immediate_just+flat_map(immediate_just(v*2))+subscribe 2221.12 ns 226.87 ns 228.46 ns 0.99
immediate_just+buffer(2)+subscribe 1530.89 ns 13.89 ns 13.58 ns 1.02
immediate_just+window(2)+subscribe + subscsribe inner 2464.41 ns 925.40 ns 932.76 ns 0.99

Conditional Operators

name rxcpp rpp prev rpp ratio
immediate_just+take_while(false)+subscribe 829.50 ns - - 0.00
immediate_just+take_while(true)+subscribe 848.38 ns 0.31 ns 0.31 ns 0.99

Utility Operators

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

Combining Operators

name rxcpp rpp prev rpp ratio
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 3277.81 ns 293.84 ns 290.63 ns 1.01
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 3709.88 ns 219.72 ns 216.09 ns 1.02
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 201.05 ns 198.44 ns 1.01
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 3438.57 ns 844.19 ns 841.94 ns 1.00
immediate_just(1) + zip(immediate_just(2)) + subscribe 2205.63 ns 200.07 ns 198.22 ns 1.01

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 54.35 ns 18.28 ns 18.25 ns 1.00
subscribe 100 observers to publish_subject 211420.00 ns 15962.56 ns 16040.67 ns 1.00
100 on_next to 100 observers to publish_subject 37475.68 ns 20602.41 ns 20793.16 ns 0.99

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 1302.29 ns 11.42 ns 11.42 ns 1.00
basic sample with immediate scheduler 1279.86 ns 6.17 ns 6.17 ns 1.00

Aggregating Operators

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

Error Handling Operators

name rxcpp rpp prev rpp ratio
create(on_next(1), on_error())+on_error_resume_next(immediate_just(2)))+subscribe 2168.99 ns 1018.68 ns 1004.24 ns 1.01
create(on_error())+retry(1)+subscribe 642.96 ns 158.77 ns 162.55 ns 0.98

ci-windows

General

name rxcpp rpp prev rpp ratio
Subscribe empty callbacks to empty observable 569.48 ns 4.94 ns 5.32 ns 0.93
Subscribe empty callbacks to empty observable via pipe operator 588.22 ns 4.94 ns 5.21 ns 0.95

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 1448.95 ns 9.71 ns 10.29 ns 0.94
from array of 1 - create + subscribe + current_thread 1462.97 ns 17.64 ns 19.39 ns 0.91
concat_as_source of just(1 immediate) create + subscribe 4069.26 ns 235.54 ns 235.61 ns 1.00
defer from array of 1 - defer + create + subscribe + immediate 1228.23 ns 9.41 ns 9.57 ns 0.98
interval - interval + take(3) + subscribe + immediate 3120.67 ns 144.48 ns 149.93 ns 0.96
interval - interval + take(3) + subscribe + current_thread 3488.37 ns 65.03 ns 71.19 ns 0.91
from array of 1 - create + as_blocking + subscribe + new_thread 120337.50 ns 111990.00 ns 125233.33 ns 0.89
from array of 1000 - create + as_blocking + subscribe + new_thread 126462.50 ns 129650.00 ns 152742.86 ns 0.85
concat_as_source of just(1 immediate) and just(1,2 immediate)create + subscribe 5363.64 ns 315.44 ns 306.46 ns 1.03

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 1822.87 ns 24.99 ns 24.99 ns 1.00
immediate_just+filter(true)+subscribe 1310.39 ns 24.05 ns 24.05 ns 1.00
immediate_just(1,2)+skip(1)+subscribe 1727.72 ns 23.44 ns 23.45 ns 1.00
immediate_just(1,1,2)+distinct_until_changed()+subscribe 1858.81 ns 26.23 ns 26.23 ns 1.00
immediate_just(1,2)+first()+subscribe 2058.52 ns 23.76 ns 23.74 ns 1.00
immediate_just(1,2)+last()+subscribe 1779.60 ns 24.67 ns 24.67 ns 1.00
immediate_just+take_last(1)+subscribe 2021.03 ns 70.84 ns 70.26 ns 1.01
immediate_just(1,2,3)+element_at(1)+subscribe 1332.17 ns 26.54 ns 26.54 ns 1.00

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 480.82 ns 6.17 ns 6.42 ns 0.96
current_thread scheduler create worker + schedule 655.09 ns 14.25 ns 18.11 ns 0.79
current_thread scheduler create worker + schedule + recursive schedule 1349.48 ns 102.92 ns 108.63 ns 0.95

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 1305.72 ns 24.35 ns 24.37 ns 1.00
immediate_just+scan(10, std::plus)+subscribe 1439.95 ns 26.53 ns 26.53 ns 1.00
immediate_just+flat_map(immediate_just(v*2))+subscribe 3476.72 ns 266.39 ns 273.06 ns 0.98
immediate_just+buffer(2)+subscribe 2313.13 ns 69.35 ns 69.87 ns 0.99
immediate_just+window(2)+subscribe + subscsribe inner 4081.75 ns 1304.19 ns 1318.21 ns 0.99

Conditional Operators

name rxcpp rpp prev rpp ratio
immediate_just+take_while(false)+subscribe 1311.95 ns 23.14 ns 23.12 ns 1.00
immediate_just+take_while(true)+subscribe 1314.94 ns 24.06 ns 24.06 ns 1.00

Utility Operators

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

Combining Operators

name rxcpp rpp prev rpp ratio
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 5076.24 ns 301.10 ns 313.84 ns 0.96
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 5461.14 ns 260.45 ns 267.19 ns 0.97
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 303.27 ns 337.38 ns 0.90
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 5265.44 ns 950.35 ns 934.57 ns 1.02
immediate_just(1) + zip(immediate_just(2)) + subscribe 3549.69 ns 575.92 ns 563.32 ns 1.02

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 36.52 ns 20.05 ns 20.04 ns 1.00
subscribe 100 observers to publish_subject 267050.00 ns 28494.59 ns 28373.81 ns 1.00
100 on_next to 100 observers to publish_subject 54850.00 ns 32624.24 ns 32651.61 ns 1.00

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 1843.86 ns 102.31 ns 102.06 ns 1.00
basic sample with immediate scheduler 2164.49 ns 72.15 ns 72.36 ns 1.00

Aggregating Operators

name rxcpp rpp prev rpp ratio
immediate_just+reduce(10, std::plus)+subscribe 1451.21 ns 24.68 ns 24.66 ns 1.00

Error Handling Operators

name rxcpp rpp prev rpp ratio
create(on_next(1), on_error())+on_error_resume_next(immediate_just(2)))+subscribe 1945.92 ns 255.48 ns 248.54 ns 1.03
create(on_error())+retry(1)+subscribe 1455.63 ns 193.50 ns 190.31 ns 1.02

Please sign in to comment.