Skip to content

Commit

Permalink
fix previous ubuntu version
Browse files Browse the repository at this point in the history
  • Loading branch information
victimsnino authored Jan 6, 2025
1 parent 38488a6 commit 40a3f3c
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 13 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/analyzers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
pvs:
if: github.repository_owner == 'victimsnino' && github.event.workflow_run.conclusion == 'success'

runs-on: ubuntu-latest
runs-on: ubuntu-22.04
timeout-minutes: 10

steps:
Expand Down Expand Up @@ -82,7 +82,7 @@ jobs:
category: PVS-Studio

sonarcloud_and_coverage:
runs-on: ubuntu-latest
runs-on: ubuntu-22.04

if: github.repository_owner == 'victimsnino' && github.event.workflow_run.conclusion == 'success'

Expand Down
20 changes: 10 additions & 10 deletions .github/workflows/ci v2.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ jobs:
cache_deps:
strategy:
matrix:
config: [{name: ci-ubuntu-gcc, os: ubuntu-latest},
{name: ci-ubuntu-clang, os: ubuntu-latest},
config: [{name: ci-ubuntu-gcc, os: ubuntu-22.04},
{name: ci-ubuntu-clang, os: ubuntu-22.04},
{name: ci-windows, os: windows-latest},
{name: ci-macos, os: macos-latest}]
build_type: [{config: Release}, {config: Debug}]
Expand Down Expand Up @@ -81,7 +81,7 @@ jobs:
sanitizer: ["tsan", "asan", "lsan", "ubsan"]

name: Sanitize - ${{ matrix.sanitizer }}
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
timeout-minutes: 15

steps:
Expand Down Expand Up @@ -136,8 +136,8 @@ jobs:

strategy:
matrix:
config: [{name: ci-ubuntu-gcc, os: ubuntu-latest},
{name: ci-ubuntu-clang, os: ubuntu-latest},
config: [{name: ci-ubuntu-gcc, os: ubuntu-22.04},
{name: ci-ubuntu-clang, os: ubuntu-22.04},
{name: ci-windows, os: windows-latest},
{name: ci-macos, os: macos-latest}]
type: [tests, benchmarks]
Expand All @@ -155,7 +155,7 @@ jobs:

# Work around https://github.com/actions/runner-images/issues/8659
# - name: "Remove GCC 13 from runner image (workaround)"
# if: matrix.config.os == 'ubuntu-latest'
# if: matrix.config.os == 'ubuntu-22.04'
# shell: bash
# run: |
# sudo apt-get update
Expand All @@ -168,7 +168,7 @@ jobs:
key: ${{ matrix.type }}-${{ matrix.config.name }}-${{ matrix.build_type.config }}

- name: Install deps
if: matrix.config.os == 'ubuntu-latest'
if: matrix.config.os == 'ubuntu-22.04'
run: |
sudo apt-get update -q && sudo apt-get install clang-tidy cppcheck -y -q
pip install pyyaml
Expand Down Expand Up @@ -217,7 +217,7 @@ jobs:

docs:
name: Build Doxygen Docs
runs-on: ubuntu-latest
runs-on: ubuntu-22.04

steps:
- uses: actions/checkout@v4
Expand Down Expand Up @@ -249,8 +249,8 @@ jobs:
use_rpp_as_package:
timeout-minutes: 20

runs-on: ubuntu-latest
name: Test RPP as package - ubuntu-latest
runs-on: ubuntu-22.04
name: Test RPP as package - ubuntu-22.04

steps:
- uses: actions/checkout@v4
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/comment_benchmarks_v2.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ on:

jobs:
process_benchmarks:
runs-on: ubuntu-latest
runs-on: ubuntu-22.04

if: github.repository_owner == 'victimsnino' && github.event.workflow_run.conclusion == 'success'

Expand Down

1 comment on commit 40a3f3c

@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 301.29 ns 1.87 ns 1.85 ns 1.01 1.85 ns
Subscribe empty callbacks to empty observable via pipe operator 303.50 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 687.41 ns 0.31 ns 0.31 ns 1.00 0.31 ns
from array of 1 - create + subscribe + current_thread 1028.25 ns 3.42 ns 3.42 ns 1.00 3.71 ns
concat_as_source of just(1 immediate) create + subscribe 2255.95 ns 119.27 ns 111.54 ns 1.07 121.50 ns
defer from array of 1 - defer + create + subscribe + immediate 721.47 ns 0.31 ns 0.31 ns 1.00 0.31 ns
interval - interval + take(3) + subscribe + immediate 2115.20 ns 59.27 ns 59.23 ns 1.00 59.23 ns
interval - interval + take(3) + subscribe + current_thread 2990.51 ns 32.43 ns 32.43 ns 1.00 33.99 ns
from array of 1 - create + as_blocking + subscribe + new_thread 27946.56 ns 27560.66 ns 28310.97 ns 0.97 28068.27 ns
from array of 1000 - create + as_blocking + subscribe + new_thread 40822.55 ns 52602.73 ns 51830.85 ns 1.01 49928.26 ns
concat_as_source of just(1 immediate) and just(1,2 immediate)create + subscribe 3453.03 ns 135.02 ns 130.22 ns 1.04 148.87 ns

Filtering Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+take(1)+subscribe 1064.60 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just+filter(true)+subscribe 876.52 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just(1,2)+skip(1)+subscribe 988.82 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just(1,1,2)+distinct_until_changed()+subscribe 897.82 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just(1,2)+first()+subscribe 1257.11 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just(1,2)+last()+subscribe 918.87 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just+take_last(1)+subscribe 1113.99 ns 17.90 ns 18.20 ns 0.98 19.48 ns
immediate_just(1,2,3)+element_at(1)+subscribe 864.54 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 269.94 ns 1.54 ns 1.54 ns 1.00 1.54 ns
current_thread scheduler create worker + schedule 370.81 ns 4.94 ns 4.94 ns 1.00 4.32 ns
current_thread scheduler create worker + schedule + recursive schedule 806.12 ns 60.77 ns 61.09 ns 0.99 60.63 ns

Transforming Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+map(v*2)+subscribe 828.91 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just+scan(10, std::plus)+subscribe 886.78 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just+flat_map(immediate_just(v*2))+subscribe 2393.77 ns 144.10 ns 419.34 ns 0.34 169.83 ns
immediate_just+buffer(2)+subscribe 1525.00 ns 13.59 ns 13.89 ns 0.98 18.24 ns
immediate_just+window(2)+subscribe + subscsribe inner 2352.58 ns 1310.25 ns 1318.32 ns 0.99 1312.19 ns

Conditional Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+take_while(false)+subscribe 869.18 ns - - 0.00 -
immediate_just+take_while(true)+subscribe 848.45 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.96 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 3393.99 ns 138.04 ns 212.70 ns 0.65 175.35 ns
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 3731.43 ns 157.91 ns 247.55 ns 0.64 164.52 ns
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 139.60 ns 134.89 ns 1.03 147.59 ns
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 3567.61 ns 411.68 ns 387.02 ns 1.06 403.36 ns
immediate_just(1) + zip(immediate_just(2)) + subscribe 2100.79 ns 220.99 ns 214.92 ns 1.03 211.59 ns
immediate_just(immediate_just(1), immediate_just(1)) + concat() + subscribe 3115.67 ns 230.22 ns 223.35 ns 1.03 257.71 ns

Subjects

name rxcpp rpp prev rpp ratio rpp no optimization
publish_subject with 1 observer - on_next 34.50 ns 14.70 ns 14.77 ns 1.00 15.44 ns
subscribe 100 observers to publish_subject 200051.40 ns 15889.50 ns 15949.37 ns 1.00 16154.40 ns
100 on_next to 100 observers to publish_subject 26971.92 ns 17257.79 ns 19118.48 ns 0.90 17378.38 ns

Scenarios

name rxcpp rpp prev rpp ratio rpp no optimization
basic sample 1397.30 ns 13.27 ns 13.27 ns 1.00 24.42 ns
basic sample with immediate scheduler 1414.79 ns 5.55 ns 5.55 ns 1.00 19.15 ns
mix operators with disposables and without disposables 6254.12 ns 1400.11 ns 1394.65 ns 1.00 1837.69 ns
single disposable and looooooong indentity chain 23703.84 ns 1112.08 ns 998.67 ns 1.11 5242.24 ns

Aggregating Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+reduce(10, std::plus)+subscribe 899.67 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 2073.06 ns 989.75 ns 1087.06 ns 0.91 987.90 ns
create(on_error())+retry(1)+subscribe 582.87 ns 110.83 ns 110.09 ns 1.01 113.64 ns

ci-macos

General

name rxcpp rpp prev rpp ratio rpp no optimization
Subscribe empty callbacks to empty observable 373.90 ns 0.49 ns 0.51 ns 0.96 0.50 ns
Subscribe empty callbacks to empty observable via pipe operator 369.80 ns 0.48 ns 0.49 ns 1.00 0.52 ns

Sources

name rxcpp rpp prev rpp ratio rpp no optimization
from array of 1 - create + subscribe + immediate 716.16 ns 0.33 ns 0.35 ns 0.93 0.34 ns
from array of 1 - create + subscribe + current_thread 932.22 ns 4.37 ns 4.65 ns 0.94 4.48 ns
concat_as_source of just(1 immediate) create + subscribe 2113.27 ns 166.31 ns 281.13 ns 0.59 173.74 ns
defer from array of 1 - defer + create + subscribe + immediate 786.74 ns 0.33 ns 0.38 ns 0.88 0.31 ns
interval - interval + take(3) + subscribe + immediate 2146.64 ns 55.79 ns 56.89 ns 0.98 50.04 ns
interval - interval + take(3) + subscribe + current_thread 2599.39 ns 32.21 ns 35.28 ns 0.91 32.63 ns
from array of 1 - create + as_blocking + subscribe + new_thread 22259.70 ns 19737.80 ns 30241.00 ns 0.65 18540.06 ns
from array of 1000 - create + as_blocking + subscribe + new_thread 27983.61 ns 25830.53 ns 28651.87 ns 0.90 40506.68 ns
concat_as_source of just(1 immediate) and just(1,2 immediate)create + subscribe 3112.95 ns 182.12 ns 277.33 ns 0.66 192.31 ns

Filtering Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+take(1)+subscribe 1159.76 ns 0.34 ns 0.38 ns 0.88 0.34 ns
immediate_just+filter(true)+subscribe 911.59 ns 0.34 ns 0.36 ns 0.96 0.34 ns
immediate_just(1,2)+skip(1)+subscribe 1115.98 ns 0.34 ns 0.35 ns 0.98 0.34 ns
immediate_just(1,1,2)+distinct_until_changed()+subscribe 887.56 ns 0.34 ns 0.34 ns 0.99 0.34 ns
immediate_just(1,2)+first()+subscribe 1383.24 ns 0.34 ns 0.35 ns 0.95 0.34 ns
immediate_just(1,2)+last()+subscribe 1030.83 ns 0.96 ns 0.76 ns 1.26 1.05 ns
immediate_just+take_last(1)+subscribe 1247.85 ns 0.34 ns 0.43 ns 0.79 0.34 ns
immediate_just(1,2,3)+element_at(1)+subscribe 876.58 ns 0.34 ns 0.35 ns 0.97 0.34 ns

Schedulers

name rxcpp rpp prev rpp ratio rpp no optimization
immediate scheduler create worker + schedule 314.31 ns 0.51 ns 0.54 ns 0.95 0.51 ns
current_thread scheduler create worker + schedule 450.75 ns 4.42 ns 4.63 ns 0.95 4.43 ns
current_thread scheduler create worker + schedule + recursive schedule 749.04 ns 67.11 ns 72.02 ns 0.93 70.88 ns

Transforming Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+map(v*2)+subscribe 879.33 ns 2.74 ns 2.78 ns 0.99 2.74 ns
immediate_just+scan(10, std::plus)+subscribe 996.54 ns 0.34 ns 0.39 ns 0.88 0.34 ns
immediate_just+flat_map(immediate_just(v*2))+subscribe 2136.40 ns 199.75 ns 232.70 ns 0.86 203.02 ns
immediate_just+buffer(2)+subscribe 1036.97 ns 16.77 ns 22.61 ns 0.74 18.26 ns
immediate_just+window(2)+subscribe + subscsribe inner 2032.29 ns 1095.41 ns 1267.06 ns 0.86 1093.97 ns

Conditional Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+take_while(false)+subscribe 852.24 ns - - 0.00 -
immediate_just+take_while(true)+subscribe 864.07 ns 0.34 ns 0.35 ns 0.96 0.34 ns

Utility Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just(1)+subscribe_on(immediate)+subscribe 1966.41 ns 1.99 ns 1.94 ns 1.02 1.94 ns

Combining Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 3040.69 ns 220.18 ns 236.84 ns 0.93 224.10 ns
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 3284.81 ns 217.60 ns 221.27 ns 0.98 222.67 ns
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 220.94 ns 256.57 ns 0.86 222.02 ns
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 3149.33 ns 546.39 ns 560.85 ns 0.97 558.33 ns
immediate_just(1) + zip(immediate_just(2)) + subscribe 2113.49 ns 354.67 ns 371.11 ns 0.96 349.06 ns
immediate_just(immediate_just(1), immediate_just(1)) + concat() + subscribe 3117.22 ns 354.70 ns 361.27 ns 0.98 354.54 ns

Subjects

name rxcpp rpp prev rpp ratio rpp no optimization
publish_subject with 1 observer - on_next 44.72 ns 20.11 ns 21.27 ns 0.95 21.66 ns
subscribe 100 observers to publish_subject 137750.00 ns 16545.03 ns 17456.78 ns 0.95 15387.23 ns
100 on_next to 100 observers to publish_subject 34400.00 ns 14918.95 ns 14840.36 ns 1.01 14514.07 ns

Scenarios

name rxcpp rpp prev rpp ratio rpp no optimization
basic sample 1274.80 ns 12.35 ns 12.20 ns 1.01 26.44 ns
basic sample with immediate scheduler 1271.88 ns 5.51 ns 5.49 ns 1.00 13.15 ns
mix operators with disposables and without disposables 5693.70 ns 1515.46 ns 1586.77 ns 0.96 1798.07 ns
single disposable and looooooong indentity chain 16392.12 ns 1701.41 ns 1685.23 ns 1.01 3869.89 ns

Aggregating Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+reduce(10, std::plus)+subscribe 1077.50 ns 0.34 ns 0.34 ns 1.01 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 3595.37 ns 2797.74 ns 2757.37 ns 1.01 2805.27 ns
create(on_error())+retry(1)+subscribe 719.77 ns 180.36 ns 184.58 ns 0.98 192.38 ns

ci-ubuntu-clang

General

name rxcpp rpp prev rpp ratio rpp no optimization
Subscribe empty callbacks to empty observable 274.67 ns 1.54 ns 0.63 ns 2.43 0.64 ns
Subscribe empty callbacks to empty observable via pipe operator 273.43 ns 1.54 ns 0.63 ns 2.43 0.63 ns

Sources

name rxcpp rpp prev rpp ratio rpp no optimization
from array of 1 - create + subscribe + immediate 571.22 ns 0.31 ns 0.31 ns 1.00 0.31 ns
from array of 1 - create + subscribe + current_thread 778.62 ns 4.01 ns 4.01 ns 1.00 4.01 ns
concat_as_source of just(1 immediate) create + subscribe 2349.69 ns 129.29 ns 128.20 ns 1.01 128.49 ns
defer from array of 1 - defer + create + subscribe + immediate 780.14 ns 0.31 ns 0.31 ns 1.00 0.31 ns
interval - interval + take(3) + subscribe + immediate 2243.50 ns 58.58 ns 58.31 ns 1.00 58.31 ns
interval - interval + take(3) + subscribe + current_thread 3211.07 ns 30.86 ns 30.88 ns 1.00 31.50 ns
from array of 1 - create + as_blocking + subscribe + new_thread 30216.00 ns 28138.41 ns 27958.56 ns 1.01 27331.36 ns
from array of 1000 - create + as_blocking + subscribe + new_thread 38318.90 ns 33594.94 ns 33188.35 ns 1.01 37052.87 ns
concat_as_source of just(1 immediate) and just(1,2 immediate)create + subscribe 3677.43 ns 148.69 ns 148.64 ns 1.00 150.04 ns

Filtering Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+take(1)+subscribe 1156.16 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just+filter(true)+subscribe 838.57 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just(1,2)+skip(1)+subscribe 1081.53 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just(1,1,2)+distinct_until_changed()+subscribe 865.62 ns 0.62 ns 0.62 ns 1.00 0.31 ns
immediate_just(1,2)+first()+subscribe 1387.39 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just(1,2)+last()+subscribe 999.90 ns 0.31 ns 0.31 ns 0.99 0.31 ns
immediate_just+take_last(1)+subscribe 1192.89 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just(1,2,3)+element_at(1)+subscribe 857.42 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 279.50 ns 0.63 ns 1.54 ns 0.41 1.54 ns
current_thread scheduler create worker + schedule 393.34 ns 4.01 ns 4.02 ns 1.00 4.02 ns
current_thread scheduler create worker + schedule + recursive schedule 849.00 ns 55.26 ns 55.24 ns 1.00 54.78 ns

Transforming Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+map(v*2)+subscribe 841.39 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just+scan(10, std::plus)+subscribe 965.24 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just+flat_map(immediate_just(v*2))+subscribe 2234.57 ns 140.68 ns 139.83 ns 1.01 136.79 ns
immediate_just+buffer(2)+subscribe 1512.39 ns 13.59 ns 26.46 ns 0.51 14.20 ns
immediate_just+window(2)+subscribe + subscsribe inner 2422.69 ns 921.06 ns 931.81 ns 0.99 867.72 ns

Conditional Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+take_while(false)+subscribe 831.08 ns - - 0.00 -
immediate_just+take_while(true)+subscribe 840.73 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 2018.13 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 3342.03 ns 160.32 ns 184.00 ns 0.87 156.88 ns
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 3774.70 ns 140.15 ns 144.18 ns 0.97 140.53 ns
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 141.71 ns 140.57 ns 1.01 139.94 ns
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 3566.71 ns 377.37 ns 377.22 ns 1.00 378.52 ns
immediate_just(1) + zip(immediate_just(2)) + subscribe 2228.16 ns 202.25 ns 207.35 ns 0.98 194.41 ns
immediate_just(immediate_just(1), immediate_just(1)) + concat() + subscribe 3272.14 ns 225.09 ns 222.32 ns 1.01 230.63 ns

Subjects

name rxcpp rpp prev rpp ratio rpp no optimization
publish_subject with 1 observer - on_next 53.79 ns 17.63 ns 17.76 ns 0.99 18.53 ns
subscribe 100 observers to publish_subject 209592.50 ns 16146.57 ns 16109.27 ns 1.00 16192.30 ns
100 on_next to 100 observers to publish_subject 35533.16 ns 23499.17 ns 23620.86 ns 0.99 23580.50 ns

Scenarios

name rxcpp rpp prev rpp ratio rpp no optimization
basic sample 1291.23 ns 11.11 ns 11.12 ns 1.00 20.38 ns
basic sample with immediate scheduler 1332.03 ns 5.86 ns 5.86 ns 1.00 6.79 ns
mix operators with disposables and without disposables 6385.81 ns 1179.39 ns 1171.43 ns 1.01 1491.17 ns
single disposable and looooooong indentity chain 27644.71 ns 1271.66 ns 1237.14 ns 1.03 4517.71 ns

Aggregating Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+reduce(10, std::plus)+subscribe 988.03 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 2193.82 ns 1168.55 ns 1177.81 ns 0.99 1143.07 ns
create(on_error())+retry(1)+subscribe 656.84 ns 138.48 ns 138.93 ns 1.00 139.67 ns

ci-windows

General

name rxcpp rpp prev rpp ratio rpp no optimization
Subscribe empty callbacks to empty observable 564.82 ns 2.16 ns 2.16 ns 1.00 2.16 ns
Subscribe empty callbacks to empty observable via pipe operator 587.27 ns 2.16 ns 2.16 ns 1.00 2.16 ns

Sources

name rxcpp rpp prev rpp ratio rpp no optimization
from array of 1 - create + subscribe + immediate 1159.98 ns 5.86 ns 5.86 ns 1.00 4.93 ns
from array of 1 - create + subscribe + current_thread 1422.81 ns 15.75 ns 15.74 ns 1.00 15.44 ns
concat_as_source of just(1 immediate) create + subscribe 3699.38 ns 167.18 ns 165.04 ns 1.01 195.08 ns
defer from array of 1 - defer + create + subscribe + immediate 1181.11 ns 5.55 ns 5.55 ns 1.00 5.65 ns
interval - interval + take(3) + subscribe + immediate 3389.64 ns 139.87 ns 140.33 ns 1.00 141.96 ns
interval - interval + take(3) + subscribe + current_thread 3445.03 ns 59.86 ns 59.96 ns 1.00 64.21 ns
from array of 1 - create + as_blocking + subscribe + new_thread 127722.22 ns 116530.00 ns 114190.00 ns 1.02 116377.78 ns
from array of 1000 - create + as_blocking + subscribe + new_thread 136862.50 ns 137485.71 ns 133375.00 ns 1.03 133462.50 ns
concat_as_source of just(1 immediate) and just(1,2 immediate)create + subscribe 5319.91 ns 200.69 ns 196.82 ns 1.02 429.37 ns

Filtering Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+take(1)+subscribe 1803.60 ns 19.44 ns 19.42 ns 1.00 20.36 ns
immediate_just+filter(true)+subscribe 1307.75 ns 18.51 ns 18.51 ns 1.00 24.11 ns
immediate_just(1,2)+skip(1)+subscribe 1951.58 ns 17.89 ns 17.90 ns 1.00 20.36 ns
immediate_just(1,1,2)+distinct_until_changed()+subscribe 1351.77 ns 20.67 ns 20.68 ns 1.00 24.99 ns
immediate_just(1,2)+first()+subscribe 2340.27 ns 18.20 ns 18.20 ns 1.00 22.58 ns
immediate_just(1,2)+last()+subscribe 1448.09 ns 19.12 ns 19.14 ns 1.00 22.23 ns
immediate_just+take_last(1)+subscribe 2008.19 ns 64.58 ns 63.69 ns 1.01 67.65 ns
immediate_just(1,2,3)+element_at(1)+subscribe 1353.80 ns 20.99 ns 21.03 ns 1.00 22.85 ns

Schedulers

name rxcpp rpp prev rpp ratio rpp no optimization
immediate scheduler create worker + schedule 486.43 ns 4.94 ns 4.94 ns 1.00 4.32 ns
current_thread scheduler create worker + schedule 655.15 ns 11.89 ns 11.84 ns 1.00 11.17 ns
current_thread scheduler create worker + schedule + recursive schedule 1081.57 ns 98.52 ns 98.54 ns 1.00 97.43 ns

Transforming Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+map(v*2)+subscribe 1310.97 ns 18.81 ns 18.82 ns 1.00 21.27 ns
immediate_just+scan(10, std::plus)+subscribe 1425.78 ns 21.04 ns 20.96 ns 1.00 20.09 ns
immediate_just+flat_map(immediate_just(v*2))+subscribe 3487.80 ns 183.44 ns 181.80 ns 1.01 204.35 ns
immediate_just+buffer(2)+subscribe 2314.11 ns 64.08 ns 63.27 ns 1.01 71.29 ns
immediate_just+window(2)+subscribe + subscsribe inner 4062.63 ns 1276.74 ns 1275.19 ns 1.00 1328.75 ns

Conditional Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+take_while(false)+subscribe 1311.76 ns 17.58 ns 17.58 ns 1.00 19.13 ns
immediate_just+take_while(true)+subscribe 1306.57 ns 18.50 ns 18.50 ns 1.00 20.98 ns

Utility Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just(1)+subscribe_on(immediate)+subscribe 3237.61 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 5197.97 ns 204.52 ns 199.04 ns 1.03 220.80 ns
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 5697.83 ns 184.63 ns 188.13 ns 0.98 193.14 ns
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 187.03 ns 187.20 ns 1.00 194.81 ns
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 5744.81 ns 438.03 ns 444.01 ns 0.99 456.01 ns
immediate_just(1) + zip(immediate_just(2)) + subscribe 3564.24 ns 510.04 ns 517.29 ns 0.99 513.25 ns
immediate_just(immediate_just(1), immediate_just(1)) + concat() + subscribe 4909.55 ns 323.54 ns 322.97 ns 1.00 341.74 ns

Subjects

name rxcpp rpp prev rpp ratio rpp no optimization
publish_subject with 1 observer - on_next 36.72 ns 20.68 ns 20.13 ns 1.03 20.50 ns
subscribe 100 observers to publish_subject 261650.00 ns 27000.00 ns 28026.83 ns 0.96 27437.84 ns
100 on_next to 100 observers to publish_subject 55215.79 ns 32686.67 ns 32705.56 ns 1.00 52670.59 ns

Scenarios

name rxcpp rpp prev rpp ratio rpp no optimization
basic sample 1880.78 ns 96.72 ns 96.65 ns 1.00 112.55 ns
basic sample with immediate scheduler 1892.40 ns 66.52 ns 67.40 ns 0.99 82.83 ns
mix operators with disposables and without disposables 10291.89 ns 1895.70 ns 1905.73 ns 0.99 2672.95 ns
single disposable and looooooong indentity chain 26954.76 ns 1707.00 ns 1707.91 ns 1.00 6812.43 ns

Aggregating Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+reduce(10, std::plus)+subscribe 1444.08 ns 19.11 ns 19.13 ns 1.00 20.17 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 1911.48 ns 350.03 ns 350.26 ns 1.00 369.46 ns
create(on_error())+retry(1)+subscribe 1764.04 ns 140.86 ns 138.54 ns 1.02 138.56 ns

Please sign in to comment.