Skip to content

[pre-commit.ci] pre-commit autoupdate#718

Merged
AlexInLog merged 5 commits into
v2from
pre-commit-ci-update-config
Sep 12, 2025
Merged

[pre-commit.ci] pre-commit autoupdate#718
AlexInLog merged 5 commits into
v2from
pre-commit-ci-update-config

Conversation

@pre-commit-ci

@pre-commit-ci pre-commit-ci Bot commented Jun 23, 2025

Copy link
Copy Markdown
Contributor

@coderabbitai

coderabbitai Bot commented Jun 23, 2025

Copy link
Copy Markdown
Contributor

Important

Review skipped

Bot user detected.

To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


Comment @coderabbitai help to get the list of available commands and usage tips.

@pre-commit-ci pre-commit-ci Bot force-pushed the pre-commit-ci-update-config branch from 270316c to 794b0cb Compare June 30, 2025 19:37
@pre-commit-ci pre-commit-ci Bot force-pushed the pre-commit-ci-update-config branch 2 times, most recently from be93237 to 4cf5435 Compare July 14, 2025 19:48
@pre-commit-ci pre-commit-ci Bot force-pushed the pre-commit-ci-update-config branch 2 times, most recently from b23d3dc to 492dae3 Compare August 18, 2025 20:17
updates:
- [github.com/sirosen/check-jsonschema: 0.33.0 → 0.33.3](python-jsonschema/check-jsonschema@0.33.0...0.33.3)
- [github.com/pre-commit/pre-commit-hooks: v5.0.0 → v6.0.0](pre-commit/pre-commit-hooks@v5.0.0...v6.0.0)
- [github.com/pre-commit/mirrors-clang-format: v20.1.6 → v21.1.0](pre-commit/mirrors-clang-format@v20.1.6...v21.1.0)
@pre-commit-ci pre-commit-ci Bot force-pushed the pre-commit-ci-update-config branch from 492dae3 to e51243b Compare September 1, 2025 20:19
@github-actions

Copy link
Copy Markdown
Contributor

BENCHMARK RESULTS (AUTOGENERATED)

ci-ubuntu-gcc

General

name rxcpp rpp prev rpp ratio rpp no optimization
Subscribe empty callbacks to empty observable 316.01 ns 1.87 ns 1.87 ns 1.00 1.86 ns
Subscribe empty callbacks to empty observable via pipe operator 318.63 ns 1.86 ns 1.86 ns 1.00 1.86 ns

Sources

name rxcpp rpp prev rpp ratio rpp no optimization
from array of 1 - create + subscribe + immediate 720.72 ns 0.31 ns 0.31 ns 1.00 0.31 ns
from array of 1 - create + subscribe + current_thread 1072.31 ns 3.73 ns 3.73 ns 1.00 3.73 ns
concat_as_source of just(1 immediate) create + subscribe 2280.70 ns 116.94 ns 115.04 ns 1.02 114.69 ns
defer from array of 1 - defer + create + subscribe + immediate 769.27 ns 0.31 ns 0.31 ns 1.00 0.31 ns
interval - interval + take(3) + subscribe + immediate 2248.49 ns 59.63 ns 59.57 ns 1.00 59.95 ns
interval - interval + take(3) + subscribe + current_thread 3011.16 ns 32.66 ns 32.64 ns 1.00 34.48 ns
from array of 1 - create + as_blocking + subscribe + new_thread 31426.03 ns 30599.18 ns 29493.32 ns 1.04 30650.11 ns
from array of 1000 - create + as_blocking + subscribe + new_thread 44383.25 ns 54219.50 ns 53496.42 ns 1.01 54146.89 ns
concat_as_source of just(1 immediate) and just(1,2 immediate)create + subscribe 3530.51 ns 138.77 ns 139.59 ns 0.99 145.84 ns

Filtering Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+take(1)+subscribe 1133.67 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just+filter(true)+subscribe 845.01 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just(1,2)+skip(1)+subscribe 1015.83 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just(1,1,2)+distinct_until_changed()+subscribe 870.27 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just(1,2)+first()+subscribe 1273.48 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just(1,2)+last()+subscribe 962.60 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just+take_last(1)+subscribe 1146.94 ns 18.64 ns 18.33 ns 1.02 19.88 ns
immediate_just(1,2,3)+element_at(1)+subscribe 857.32 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 315.99 ns 0.47 ns 1.55 ns 0.30 1.55 ns
current_thread scheduler create worker + schedule 373.48 ns 4.35 ns 4.35 ns 1.00 4.66 ns
current_thread scheduler create worker + schedule + recursive schedule 834.73 ns 61.03 ns 61.23 ns 1.00 61.14 ns

Transforming Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+map(v*2)+subscribe 851.71 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just+scan(10, std::plus)+subscribe 910.45 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just+flat_map(immediate_just(v*2))+subscribe 2368.57 ns 135.38 ns 131.83 ns 1.03 168.47 ns
immediate_just+buffer(2)+subscribe 1578.91 ns 13.99 ns 13.68 ns 1.02 17.41 ns
immediate_just+window(2)+subscribe + subscsribe inner 2475.16 ns 1369.10 ns 1266.06 ns 1.08 1323.72 ns

Conditional Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+take_while(false)+subscribe 869.92 ns - - 0.00 -
immediate_just+take_while(true)+subscribe 877.79 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 1991.52 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 3632.17 ns 159.48 ns 161.41 ns 0.99 172.07 ns
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 3674.37 ns 180.14 ns 162.95 ns 1.11 165.72 ns
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 132.14 ns 136.47 ns 0.97 150.53 ns
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 3578.44 ns 412.74 ns 394.39 ns 1.05 448.55 ns
immediate_just(1) + zip(immediate_just(2)) + subscribe 2169.97 ns 231.64 ns 214.29 ns 1.08 213.40 ns
immediate_just(immediate_just(1), immediate_just(1)) + concat() + subscribe 3223.55 ns 224.58 ns 251.73 ns 0.89 252.17 ns

Subjects

name rxcpp rpp prev rpp ratio rpp no optimization
publish_subject with 1 observer - on_next 34.79 ns 14.79 ns 14.80 ns 1.00 15.40 ns
subscribe 100 observers to publish_subject 205453.67 ns 19576.91 ns 17846.34 ns 1.10 18149.05 ns
100 on_next to 100 observers to publish_subject 27678.60 ns 16871.65 ns 16817.81 ns 1.00 16882.81 ns

Scenarios

name rxcpp rpp prev rpp ratio rpp no optimization
basic sample 1438.97 ns 13.05 ns 13.05 ns 1.00 22.37 ns
basic sample with immediate scheduler 1435.16 ns 5.28 ns 5.28 ns 1.00 16.16 ns
mix operators with disposables and without disposables 6493.95 ns 1440.89 ns 1444.66 ns 1.00 1845.78 ns
single disposable and looooooong indentity chain 25099.02 ns 1058.33 ns 1102.70 ns 0.96 5251.98 ns

Aggregating Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+reduce(10, std::plus)+subscribe 977.39 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 2155.64 ns 1018.16 ns 1003.35 ns 1.01 1015.08 ns
create(on_error())+retry(1)+subscribe 660.44 ns 117.54 ns 110.24 ns 1.07 118.83 ns

ci-macos

General

name rxcpp rpp prev rpp ratio rpp no optimization
Subscribe empty callbacks to empty observable 389.35 ns 0.99 ns 0.50 ns 1.97 1.00 ns
Subscribe empty callbacks to empty observable via pipe operator 388.59 ns 1.28 ns 0.49 ns 2.61 1.01 ns

Sources

name rxcpp rpp prev rpp ratio rpp no optimization
from array of 1 - create + subscribe + immediate 757.74 ns 0.34 ns 0.33 ns 1.04 0.34 ns
from array of 1 - create + subscribe + current_thread 978.41 ns 4.03 ns 3.91 ns 1.03 4.10 ns
concat_as_source of just(1 immediate) create + subscribe 2233.33 ns 175.54 ns 181.29 ns 0.97 183.60 ns
defer from array of 1 - defer + create + subscribe + immediate 789.92 ns 0.39 ns 0.34 ns 1.16 0.34 ns
interval - interval + take(3) + subscribe + immediate 2103.40 ns 56.35 ns 55.65 ns 1.01 55.90 ns
interval - interval + take(3) + subscribe + current_thread 2934.97 ns 32.44 ns 32.01 ns 1.01 33.42 ns
from array of 1 - create + as_blocking + subscribe + new_thread 53037.26 ns 36581.16 ns 16636.82 ns 2.20 41938.39 ns
from array of 1000 - create + as_blocking + subscribe + new_thread 30069.44 ns 34217.82 ns 23500.00 ns 1.46 26420.95 ns
concat_as_source of just(1 immediate) and just(1,2 immediate)create + subscribe 3291.81 ns 193.99 ns 190.78 ns 1.02 197.60 ns

Filtering Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+take(1)+subscribe 1180.48 ns 0.34 ns 0.34 ns 1.01 0.34 ns
immediate_just+filter(true)+subscribe 869.89 ns 0.34 ns 0.34 ns 0.99 0.34 ns
immediate_just(1,2)+skip(1)+subscribe 1123.17 ns 0.34 ns 0.34 ns 1.00 0.34 ns
immediate_just(1,1,2)+distinct_until_changed()+subscribe 906.10 ns 0.34 ns 0.33 ns 1.01 0.34 ns
immediate_just(1,2)+first()+subscribe 1406.25 ns 0.38 ns 0.34 ns 1.12 0.34 ns
immediate_just(1,2)+last()+subscribe 1153.84 ns 0.98 ns 1.02 ns 0.96 0.98 ns
immediate_just+take_last(1)+subscribe 1264.01 ns 0.34 ns 0.34 ns 0.99 0.34 ns
immediate_just(1,2,3)+element_at(1)+subscribe 879.56 ns 0.34 ns 0.34 ns 1.00 0.34 ns

Schedulers

name rxcpp rpp prev rpp ratio rpp no optimization
immediate scheduler create worker + schedule 322.76 ns 1.00 ns 0.50 ns 1.99 1.04 ns
current_thread scheduler create worker + schedule 447.73 ns 4.07 ns 4.18 ns 0.97 4.23 ns
current_thread scheduler create worker + schedule + recursive schedule 755.14 ns 64.68 ns 66.63 ns 0.97 67.38 ns

Transforming Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+map(v*2)+subscribe 1043.92 ns 2.75 ns 2.51 ns 1.09 2.67 ns
immediate_just+scan(10, std::plus)+subscribe 1000.62 ns 0.34 ns 0.34 ns 1.02 0.34 ns
immediate_just+flat_map(immediate_just(v*2))+subscribe 2632.25 ns 211.08 ns 199.29 ns 1.06 199.25 ns
immediate_just+buffer(2)+subscribe 1023.96 ns 15.85 ns 16.57 ns 0.96 16.95 ns
immediate_just+window(2)+subscribe + subscsribe inner 2101.87 ns 1054.64 ns 1086.30 ns 0.97 1076.54 ns

Conditional Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+take_while(false)+subscribe 860.04 ns - - 0.00 -
immediate_just+take_while(true)+subscribe 1045.63 ns 0.34 ns 0.34 ns 1.01 0.34 ns

Utility Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just(1)+subscribe_on(immediate)+subscribe 2358.27 ns 1.89 ns 1.79 ns 1.05 1.74 ns

Combining Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 3132.49 ns 219.11 ns 226.85 ns 0.97 219.27 ns
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 3350.99 ns 214.42 ns 205.39 ns 1.04 215.83 ns
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 225.49 ns 225.83 ns 1.00 223.64 ns
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 3266.16 ns 544.20 ns 542.01 ns 1.00 539.38 ns
immediate_just(1) + zip(immediate_just(2)) + subscribe 2181.49 ns 335.46 ns 339.71 ns 0.99 327.34 ns
immediate_just(immediate_just(1), immediate_just(1)) + concat() + subscribe 3675.45 ns 659.82 ns 336.76 ns 1.96 342.37 ns

Subjects

name rxcpp rpp prev rpp ratio rpp no optimization
publish_subject with 1 observer - on_next 53.85 ns 22.42 ns 22.28 ns 1.01 22.44 ns
subscribe 100 observers to publish_subject 143729.25 ns 38242.42 ns 18529.48 ns 2.06 17991.53 ns
100 on_next to 100 observers to publish_subject 45455.22 ns 12498.04 ns 12904.35 ns 0.97 26218.51 ns

Scenarios

name rxcpp rpp prev rpp ratio rpp no optimization
basic sample 1361.46 ns 14.71 ns 10.84 ns 1.36 30.35 ns
basic sample with immediate scheduler 1564.41 ns 5.69 ns 5.46 ns 1.04 10.45 ns
mix operators with disposables and without disposables 8256.39 ns 2289.02 ns 1422.56 ns 1.61 1804.31 ns
single disposable and looooooong indentity chain 25796.62 ns 1855.16 ns 1618.50 ns 1.15 3819.68 ns

Aggregating Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+reduce(10, std::plus)+subscribe 1024.02 ns 0.34 ns 0.34 ns 0.99 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 3778.32 ns 2928.38 ns 2905.70 ns 1.01 2989.45 ns
create(on_error())+retry(1)+subscribe 854.42 ns 183.70 ns 189.99 ns 0.97 185.18 ns

ci-ubuntu-clang

General

name rxcpp rpp prev rpp ratio rpp no optimization
Subscribe empty callbacks to empty observable 272.83 ns 1.56 ns 1.56 ns 1.00 0.64 ns
Subscribe empty callbacks to empty observable via pipe operator 270.15 ns 1.55 ns 1.55 ns 1.00 0.64 ns

Sources

name rxcpp rpp prev rpp ratio rpp no optimization
from array of 1 - create + subscribe + immediate 569.56 ns 0.31 ns 0.31 ns 1.00 0.31 ns
from array of 1 - create + subscribe + current_thread 794.17 ns 4.04 ns 4.04 ns 1.00 4.04 ns
concat_as_source of just(1 immediate) create + subscribe 2351.98 ns 131.13 ns 130.57 ns 1.00 137.91 ns
defer from array of 1 - defer + create + subscribe + immediate 783.91 ns 0.31 ns 0.31 ns 1.00 0.31 ns
interval - interval + take(3) + subscribe + immediate 2251.36 ns 58.67 ns 58.69 ns 1.00 58.65 ns
interval - interval + take(3) + subscribe + current_thread 3138.21 ns 31.07 ns 31.14 ns 1.00 31.72 ns
from array of 1 - create + as_blocking + subscribe + new_thread 28830.54 ns 29788.21 ns 30661.34 ns 0.97 31122.00 ns
from array of 1000 - create + as_blocking + subscribe + new_thread 38357.44 ns 37203.32 ns 37840.52 ns 0.98 38339.37 ns
concat_as_source of just(1 immediate) and just(1,2 immediate)create + subscribe 3726.36 ns 150.00 ns 150.50 ns 1.00 146.68 ns

Filtering Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+take(1)+subscribe 1165.44 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just+filter(true)+subscribe 843.32 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just(1,2)+skip(1)+subscribe 1091.51 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just(1,1,2)+distinct_until_changed()+subscribe 876.36 ns 0.32 ns 0.32 ns 1.00 0.32 ns
immediate_just(1,2)+first()+subscribe 1392.96 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just(1,2)+last()+subscribe 1024.60 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just+take_last(1)+subscribe 1214.56 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just(1,2,3)+element_at(1)+subscribe 865.41 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.61 ns 0.64 ns 0.64 ns 1.00 1.55 ns
current_thread scheduler create worker + schedule 394.39 ns 4.04 ns 12.14 ns 0.33 4.04 ns
current_thread scheduler create worker + schedule + recursive schedule 845.92 ns 56.04 ns 56.87 ns 0.99 54.72 ns

Transforming Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+map(v*2)+subscribe 846.88 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just+scan(10, std::plus)+subscribe 993.05 ns 0.62 ns 0.62 ns 1.00 0.32 ns
immediate_just+flat_map(immediate_just(v*2))+subscribe 2293.01 ns 137.16 ns 137.35 ns 1.00 134.91 ns
immediate_just+buffer(2)+subscribe 1538.87 ns 13.98 ns 13.98 ns 1.00 14.60 ns
immediate_just+window(2)+subscribe + subscsribe inner 2466.95 ns 898.38 ns 914.76 ns 0.98 905.11 ns

Conditional Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+take_while(false)+subscribe 853.53 ns - - 0.00 -
immediate_just+take_while(true)+subscribe 855.99 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 2013.90 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 3296.57 ns 159.68 ns 162.92 ns 0.98 154.91 ns
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 3763.63 ns 138.58 ns 140.12 ns 0.99 139.58 ns
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 143.45 ns 143.21 ns 1.00 139.17 ns
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 3379.25 ns 378.55 ns 380.15 ns 1.00 380.23 ns
immediate_just(1) + zip(immediate_just(2)) + subscribe 2259.13 ns 201.38 ns 200.63 ns 1.00 200.25 ns
immediate_just(immediate_just(1), immediate_just(1)) + concat() + subscribe 3241.55 ns 224.18 ns 224.44 ns 1.00 226.34 ns

Subjects

name rxcpp rpp prev rpp ratio rpp no optimization
publish_subject with 1 observer - on_next 54.28 ns 19.80 ns 19.23 ns 1.03 20.25 ns
subscribe 100 observers to publish_subject 212903.20 ns 17477.34 ns 17453.59 ns 1.00 17462.77 ns
100 on_next to 100 observers to publish_subject 46698.00 ns 20228.90 ns 20281.98 ns 1.00 20257.24 ns

Scenarios

name rxcpp rpp prev rpp ratio rpp no optimization
basic sample 1325.04 ns 11.50 ns 11.49 ns 1.00 21.43 ns
basic sample with immediate scheduler 1345.67 ns 5.90 ns 5.90 ns 1.00 6.52 ns
mix operators with disposables and without disposables 6625.94 ns 1166.70 ns 1189.78 ns 0.98 1451.83 ns
single disposable and looooooong indentity chain 28162.29 ns 1256.26 ns 1245.42 ns 1.01 4690.54 ns

Aggregating Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+reduce(10, std::plus)+subscribe 998.44 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 2200.44 ns 1175.87 ns 1166.38 ns 1.01 1169.73 ns
create(on_error())+retry(1)+subscribe 658.63 ns 138.55 ns 138.70 ns 1.00 140.45 ns

ci-windows

General

name rxcpp rpp prev rpp ratio rpp no optimization
Subscribe empty callbacks to empty observable 556.07 ns 2.16 ns 2.16 ns 1.00 1.85 ns
Subscribe empty callbacks to empty observable via pipe operator 572.10 ns 2.16 ns 2.16 ns 1.00 1.85 ns

Sources

name rxcpp rpp prev rpp ratio rpp no optimization
from array of 1 - create + subscribe + immediate 1155.57 ns 4.93 ns 4.94 ns 1.00 5.55 ns
from array of 1 - create + subscribe + current_thread 1419.82 ns 15.75 ns 15.74 ns 1.00 15.45 ns
concat_as_source of just(1 immediate) create + subscribe 3696.46 ns 174.60 ns 174.62 ns 1.00 178.05 ns
defer from array of 1 - defer + create + subscribe + immediate 1180.65 ns 5.24 ns 5.24 ns 1.00 5.24 ns
interval - interval + take(3) + subscribe + immediate 3736.36 ns 139.81 ns 139.74 ns 1.00 142.29 ns
interval - interval + take(3) + subscribe + current_thread 3460.30 ns 60.15 ns 59.86 ns 1.00 62.80 ns
from array of 1 - create + as_blocking + subscribe + new_thread 123175.00 ns 118700.00 ns 120400.00 ns 0.99 119788.89 ns
from array of 1000 - create + as_blocking + subscribe + new_thread 132655.56 ns 135675.00 ns 136975.00 ns 0.99 137275.00 ns
concat_as_source of just(1 immediate) and just(1,2 immediate)create + subscribe 5329.67 ns 206.57 ns 201.39 ns 1.03 215.13 ns

Filtering Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+take(1)+subscribe 1818.86 ns 19.42 ns 19.42 ns 1.00 21.36 ns
immediate_just+filter(true)+subscribe 1610.58 ns 18.50 ns 18.51 ns 1.00 21.59 ns
immediate_just(1,2)+skip(1)+subscribe 2008.80 ns 17.89 ns 17.91 ns 1.00 21.60 ns
immediate_just(1,1,2)+distinct_until_changed()+subscribe 1328.95 ns 20.67 ns 20.68 ns 1.00 26.86 ns
immediate_just(1,2)+first()+subscribe 2372.16 ns 18.20 ns 18.21 ns 1.00 19.43 ns
immediate_just(1,2)+last()+subscribe 1464.98 ns 19.13 ns 19.15 ns 1.00 22.84 ns
immediate_just+take_last(1)+subscribe 2023.02 ns 64.85 ns 64.93 ns 1.00 70.17 ns
immediate_just(1,2,3)+element_at(1)+subscribe 1622.12 ns 20.97 ns 20.98 ns 1.00 21.63 ns

Schedulers

name rxcpp rpp prev rpp ratio rpp no optimization
immediate scheduler create worker + schedule 477.39 ns 4.32 ns 4.32 ns 1.00 4.32 ns
current_thread scheduler create worker + schedule 648.68 ns 11.11 ns 11.11 ns 1.00 11.11 ns
current_thread scheduler create worker + schedule + recursive schedule 1079.50 ns 103.96 ns 101.36 ns 1.03 103.12 ns

Transforming Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+map(v*2)+subscribe 1328.23 ns 18.80 ns 18.80 ns 1.00 21.63 ns
immediate_just+scan(10, std::plus)+subscribe 1422.12 ns 20.96 ns 20.96 ns 1.00 23.80 ns
immediate_just+flat_map(immediate_just(v*2))+subscribe 3837.33 ns 186.30 ns 185.11 ns 1.01 223.46 ns
immediate_just+buffer(2)+subscribe 2291.50 ns 64.26 ns 63.51 ns 1.01 72.33 ns
immediate_just+window(2)+subscribe + subscsribe inner 3974.07 ns 1216.92 ns 1192.15 ns 1.02 1226.57 ns

Conditional Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+take_while(false)+subscribe 1305.28 ns 17.57 ns 17.57 ns 1.00 19.13 ns
immediate_just+take_while(true)+subscribe 1329.92 ns 18.50 ns 18.50 ns 1.00 21.60 ns

Utility Operators

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

Combining Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 5054.46 ns 197.43 ns 195.27 ns 1.01 222.13 ns
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 5710.11 ns 186.78 ns 178.89 ns 1.04 204.81 ns
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 195.15 ns 194.65 ns 1.00 199.56 ns
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 6119.16 ns 444.60 ns 443.65 ns 1.00 489.05 ns
immediate_just(1) + zip(immediate_just(2)) + subscribe 3865.37 ns 538.25 ns 519.56 ns 1.04 516.04 ns
immediate_just(immediate_just(1), immediate_just(1)) + concat() + subscribe 4853.97 ns 314.42 ns 314.38 ns 1.00 325.14 ns

Subjects

name rxcpp rpp prev rpp ratio rpp no optimization
publish_subject with 1 observer - on_next 36.72 ns 29.42 ns 29.27 ns 1.01 30.01 ns
subscribe 100 observers to publish_subject 264250.00 ns 25013.33 ns 25450.00 ns 0.98 24830.23 ns
100 on_next to 100 observers to publish_subject 51881.82 ns 35939.39 ns 35922.58 ns 1.00 32997.22 ns

Scenarios

name rxcpp rpp prev rpp ratio rpp no optimization
basic sample 1853.25 ns 96.57 ns 96.80 ns 1.00 112.11 ns
basic sample with immediate scheduler 1857.89 ns 66.73 ns 68.51 ns 0.97 82.35 ns
mix operators with disposables and without disposables 9381.75 ns 1787.22 ns 1797.99 ns 0.99 2439.19 ns
single disposable and looooooong indentity chain 25641.46 ns 1655.18 ns 1630.37 ns 1.02 6267.21 ns

Aggregating Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+reduce(10, std::plus)+subscribe 1458.16 ns 19.11 ns 19.11 ns 1.00 22.83 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 1896.36 ns 357.24 ns 353.06 ns 1.01 380.86 ns
create(on_error())+retry(1)+subscribe 1721.11 ns 138.15 ns 137.92 ns 1.00 139.85 ns

@AlexInLog AlexInLog merged commit ec529c4 into v2 Sep 12, 2025
39 checks passed
@AlexInLog AlexInLog deleted the pre-commit-ci-update-config branch September 12, 2025 12:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant