Skip to content

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

Open
pre-commit-ci[bot] wants to merge 1 commit into
v2from
pre-commit-ci-update-config
Open

[pre-commit.ci] pre-commit autoupdate#750
pre-commit-ci[bot] wants to merge 1 commit into
v2from
pre-commit-ci-update-config

Conversation

@pre-commit-ci
Copy link
Copy Markdown
Contributor

@pre-commit-ci pre-commit-ci Bot commented Apr 13, 2026

@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 303.91 ns 1.87 ns 1.87 ns 1.00 1.55 ns
Subscribe empty callbacks to empty observable via pipe operator 305.83 ns 1.87 ns 1.87 ns 1.00 1.55 ns

Sources

name rxcpp rpp prev rpp ratio rpp no optimization
from array of 1 - create + subscribe + immediate 696.01 ns 0.31 ns 0.31 ns 1.00 0.31 ns
from array of 1 - create + subscribe + current_thread 1040.95 ns 3.74 ns 3.73 ns 1.00 3.73 ns
concat_as_source of just(1 immediate) create + subscribe 2282.54 ns 121.46 ns 114.10 ns 1.06 116.61 ns
defer from array of 1 - defer + create + subscribe + immediate 727.83 ns 0.31 ns 0.31 ns 1.00 0.32 ns
interval - interval + take(3) + subscribe + immediate 2200.93 ns 59.59 ns 59.61 ns 1.00 60.87 ns
interval - interval + take(3) + subscribe + current_thread 3023.02 ns 32.66 ns 32.65 ns 1.00 35.90 ns
from array of 1 - create + as_blocking + subscribe + new_thread 32683.70 ns 31158.42 ns 31006.71 ns 1.00 33049.46 ns
from array of 1000 - create + as_blocking + subscribe + new_thread 41056.96 ns 54377.68 ns 53644.56 ns 1.01 55340.17 ns
concat_as_source of just(1 immediate) and just(1,2 immediate)create + subscribe 3540.89 ns 130.79 ns 132.81 ns 0.98 225.46 ns

Filtering Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+take(1)+subscribe 1102.36 ns 0.31 ns 0.31 ns 0.99 0.31 ns
immediate_just+filter(true)+subscribe 837.27 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just(1,2)+skip(1)+subscribe 1083.42 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just(1,1,2)+distinct_until_changed()+subscribe 915.60 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just(1,2)+first()+subscribe 1256.21 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just(1,2)+last()+subscribe 956.49 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just+take_last(1)+subscribe 1148.99 ns 18.34 ns 18.33 ns 1.00 19.57 ns
immediate_just(1,2,3)+element_at(1)+subscribe 842.93 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 275.85 ns 1.55 ns 0.47 ns 3.33 0.62 ns
current_thread scheduler create worker + schedule 367.90 ns 4.35 ns 4.35 ns 1.00 4.66 ns
current_thread scheduler create worker + schedule + recursive schedule 824.62 ns 61.34 ns 61.08 ns 1.00 66.66 ns

Transforming Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+map(v*2)+subscribe 858.41 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just+scan(10, std::plus)+subscribe 913.74 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just+flat_map(immediate_just(v*2))+subscribe 2336.45 ns 124.45 ns 124.07 ns 1.00 190.34 ns
immediate_just+buffer(2)+subscribe 1554.55 ns 13.68 ns 13.68 ns 1.00 17.56 ns
immediate_just+window(2)+subscribe + subscsribe inner 2443.80 ns 1281.45 ns 1272.82 ns 1.01 1388.98 ns

Conditional Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+take_while(false)+subscribe 842.09 ns - - 0.00 -
immediate_just+take_while(true)+subscribe 852.56 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 1986.01 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 3467.36 ns 161.04 ns 156.62 ns 1.03 178.11 ns
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 3694.82 ns 159.57 ns 206.35 ns 0.77 170.56 ns
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 145.91 ns 137.82 ns 1.06 148.00 ns
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 3650.28 ns 386.07 ns 425.48 ns 0.91 382.96 ns
immediate_just(1) + zip(immediate_just(2)) + subscribe 2161.75 ns 216.45 ns 209.94 ns 1.03 214.10 ns
immediate_just(immediate_just(1), immediate_just(1)) + concat() + subscribe 3211.28 ns 233.04 ns 224.79 ns 1.04 253.20 ns

Subjects

name rxcpp rpp prev rpp ratio rpp no optimization
publish_subject with 1 observer - on_next 34.81 ns 14.80 ns 14.81 ns 1.00 14.94 ns
subscribe 100 observers to publish_subject 201892.40 ns 18102.19 ns 18177.88 ns 1.00 17706.56 ns
100 on_next to 100 observers to publish_subject 27201.00 ns 16908.45 ns 16807.62 ns 1.01 16969.56 ns

Scenarios

name rxcpp rpp prev rpp ratio rpp no optimization
basic sample 1473.20 ns 13.06 ns 13.06 ns 1.00 22.56 ns
basic sample with immediate scheduler 1421.91 ns 5.28 ns 5.28 ns 1.00 16.15 ns
mix operators with disposables and without disposables 6473.55 ns 1424.71 ns 1441.48 ns 0.99 1843.79 ns
single disposable and looooooong indentity chain 24832.63 ns 1041.51 ns 1016.56 ns 1.02 4767.38 ns

Aggregating Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+reduce(10, std::plus)+subscribe 957.27 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.24 ns 987.04 ns 998.04 ns 0.99 1014.11 ns
create(on_error())+retry(1)+subscribe 589.11 ns 111.15 ns 116.07 ns 0.96 115.77 ns

ci-macos

General

name rxcpp rpp prev rpp ratio rpp no optimization
Subscribe empty callbacks to empty observable 358.47 ns 0.47 ns 0.51 ns 0.93 0.47 ns
Subscribe empty callbacks to empty observable via pipe operator 353.27 ns 0.47 ns 0.50 ns 0.94 0.47 ns

Sources

name rxcpp rpp prev rpp ratio rpp no optimization
from array of 1 - create + subscribe + immediate 682.94 ns 0.31 ns 0.32 ns 0.97 0.31 ns
from array of 1 - create + subscribe + current_thread 934.29 ns 3.75 ns 3.78 ns 0.99 3.77 ns
concat_as_source of just(1 immediate) create + subscribe 2319.11 ns 186.13 ns 180.76 ns 1.03 162.36 ns
defer from array of 1 - defer + create + subscribe + immediate 740.43 ns 0.31 ns 0.34 ns 0.91 0.31 ns
interval - interval + take(3) + subscribe + immediate 1916.12 ns 50.66 ns 56.77 ns 0.89 50.82 ns
interval - interval + take(3) + subscribe + current_thread 2376.95 ns 30.09 ns 32.72 ns 0.92 29.80 ns
from array of 1 - create + as_blocking + subscribe + new_thread 20565.84 ns 21473.28 ns 16058.75 ns 1.34 17388.45 ns
from array of 1000 - create + as_blocking + subscribe + new_thread 27425.21 ns 25295.83 ns 21801.43 ns 1.16 23866.88 ns
concat_as_source of just(1 immediate) and just(1,2 immediate)create + subscribe 3003.81 ns 198.10 ns 197.93 ns 1.00 180.30 ns

Filtering Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+take(1)+subscribe 1066.82 ns 0.31 ns 0.34 ns 0.91 0.34 ns
immediate_just+filter(true)+subscribe 878.88 ns 0.34 ns 0.34 ns 1.00 0.33 ns
immediate_just(1,2)+skip(1)+subscribe 1157.85 ns 0.34 ns 0.34 ns 1.01 0.33 ns
immediate_just(1,1,2)+distinct_until_changed()+subscribe 900.06 ns 0.34 ns 0.34 ns 1.01 0.33 ns
immediate_just(1,2)+first()+subscribe 1651.89 ns 0.40 ns 0.34 ns 1.16 0.33 ns
immediate_just(1,2)+last()+subscribe 1109.60 ns 0.95 ns 1.00 ns 0.95 0.56 ns
immediate_just+take_last(1)+subscribe 1125.36 ns 0.31 ns 0.34 ns 0.91 0.33 ns
immediate_just(1,2,3)+element_at(1)+subscribe 896.48 ns 0.35 ns 0.34 ns 1.01 0.33 ns

Schedulers

name rxcpp rpp prev rpp ratio rpp no optimization
immediate scheduler create worker + schedule 320.13 ns 0.47 ns 0.52 ns 0.90 0.47 ns
current_thread scheduler create worker + schedule 458.27 ns 4.22 ns 4.24 ns 1.00 4.16 ns
current_thread scheduler create worker + schedule + recursive schedule 753.99 ns 65.40 ns 64.08 ns 1.02 60.70 ns

Transforming Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+map(v*2)+subscribe 892.78 ns 2.80 ns 2.80 ns 1.00 2.65 ns
immediate_just+scan(10, std::plus)+subscribe 1020.38 ns 0.34 ns 0.34 ns 1.01 0.34 ns
immediate_just+flat_map(immediate_just(v*2))+subscribe 2207.16 ns 219.93 ns 214.77 ns 1.02 197.25 ns
immediate_just+buffer(2)+subscribe 912.95 ns 14.38 ns 16.55 ns 0.87 15.41 ns
immediate_just+window(2)+subscribe + subscsribe inner 1835.25 ns 974.09 ns 1080.60 ns 0.90 1021.53 ns

Conditional Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+take_while(false)+subscribe 875.06 ns - - 0.00 -
immediate_just+take_while(true)+subscribe 898.49 ns 0.34 ns 0.34 ns 1.00 0.33 ns

Utility Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just(1)+subscribe_on(immediate)+subscribe 2023.32 ns 1.88 ns 1.81 ns 1.04 1.84 ns

Combining Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 3165.51 ns 224.63 ns 203.56 ns 1.10 216.44 ns
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 3361.37 ns 216.83 ns 197.48 ns 1.10 216.08 ns
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 225.60 ns 223.26 ns 1.01 221.40 ns
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 3279.44 ns 551.36 ns 550.01 ns 1.00 524.70 ns
immediate_just(1) + zip(immediate_just(2)) + subscribe 2178.94 ns 346.75 ns 337.87 ns 1.03 346.76 ns
immediate_just(immediate_just(1), immediate_just(1)) + concat() + subscribe 3160.84 ns 347.60 ns 316.43 ns 1.10 337.45 ns

Subjects

name rxcpp rpp prev rpp ratio rpp no optimization
publish_subject with 1 observer - on_next 41.96 ns 20.74 ns 22.44 ns 0.92 22.55 ns
subscribe 100 observers to publish_subject 139828.12 ns 17529.51 ns 18487.90 ns 0.95 18141.07 ns
100 on_next to 100 observers to publish_subject 32001.24 ns 12197.78 ns 12043.41 ns 1.01 11378.75 ns

Scenarios

name rxcpp rpp prev rpp ratio rpp no optimization
basic sample 1296.35 ns 11.08 ns 10.75 ns 1.03 29.04 ns
basic sample with immediate scheduler 1295.96 ns 5.56 ns 5.35 ns 1.04 10.39 ns
mix operators with disposables and without disposables 6129.29 ns 1468.74 ns 1412.26 ns 1.04 1771.97 ns
single disposable and looooooong indentity chain 16437.79 ns 1740.44 ns 1694.81 ns 1.03 3814.91 ns

Aggregating Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+reduce(10, std::plus)+subscribe 1037.61 ns 0.34 ns 0.34 ns 1.01 0.33 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 3472.71 ns 2701.47 ns 2854.01 ns 0.95 2789.47 ns
create(on_error())+retry(1)+subscribe 667.00 ns 177.94 ns 185.48 ns 0.96 184.91 ns

ci-ubuntu-clang

General

name rxcpp rpp prev rpp ratio rpp no optimization
Subscribe empty callbacks to empty observable 272.75 ns 0.64 ns 0.66 ns 0.97 1.56 ns
Subscribe empty callbacks to empty observable via pipe operator 272.12 ns 0.64 ns 0.58 ns 1.11 1.55 ns

Sources

name rxcpp rpp prev rpp ratio rpp no optimization
from array of 1 - create + subscribe + immediate 559.70 ns 0.31 ns 0.30 ns 1.02 0.31 ns
from array of 1 - create + subscribe + current_thread 789.32 ns 4.06 ns 2.88 ns 1.41 4.04 ns
concat_as_source of just(1 immediate) create + subscribe 2351.83 ns 130.00 ns 250.80 ns 0.52 138.35 ns
defer from array of 1 - defer + create + subscribe + immediate 787.74 ns 0.31 ns 0.29 ns 1.08 0.31 ns
interval - interval + take(3) + subscribe + immediate 2197.06 ns 58.68 ns 37.97 ns 1.55 58.68 ns
interval - interval + take(3) + subscribe + current_thread 3181.02 ns 32.62 ns 21.29 ns 1.53 31.72 ns
from array of 1 - create + as_blocking + subscribe + new_thread 35648.48 ns 32228.77 ns 29072.08 ns 1.11 30057.05 ns
from array of 1000 - create + as_blocking + subscribe + new_thread 42848.12 ns 40199.59 ns 34958.66 ns 1.15 39759.68 ns
concat_as_source of just(1 immediate) and just(1,2 immediate)create + subscribe 3677.22 ns 148.65 ns 295.09 ns 0.50 149.23 ns

Filtering Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+take(1)+subscribe 1149.70 ns 0.31 ns 0.29 ns 1.08 0.31 ns
immediate_just+filter(true)+subscribe 846.16 ns 0.31 ns 0.29 ns 1.08 0.31 ns
immediate_just(1,2)+skip(1)+subscribe 1072.55 ns 0.31 ns 0.29 ns 1.08 0.31 ns
immediate_just(1,1,2)+distinct_until_changed()+subscribe 880.61 ns 0.32 ns 0.29 ns 1.10 0.32 ns
immediate_just(1,2)+first()+subscribe 1371.56 ns 0.31 ns 0.29 ns 1.08 0.31 ns
immediate_just(1,2)+last()+subscribe 1002.41 ns 0.31 ns 0.29 ns 1.08 0.31 ns
immediate_just+take_last(1)+subscribe 1187.40 ns 0.31 ns 0.29 ns 1.06 0.31 ns
immediate_just(1,2,3)+element_at(1)+subscribe 870.24 ns 0.31 ns 0.29 ns 1.08 0.31 ns

Schedulers

name rxcpp rpp prev rpp ratio rpp no optimization
immediate scheduler create worker + schedule 281.97 ns 1.57 ns 0.86 ns 1.82 0.64 ns
current_thread scheduler create worker + schedule 393.35 ns 4.04 ns 3.11 ns 1.30 4.04 ns
current_thread scheduler create worker + schedule + recursive schedule 852.76 ns 55.25 ns 51.60 ns 1.07 58.11 ns

Transforming Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+map(v*2)+subscribe 843.22 ns 0.31 ns 0.29 ns 1.08 0.31 ns
immediate_just+scan(10, std::plus)+subscribe 967.17 ns 0.62 ns 0.58 ns 1.08 0.33 ns
immediate_just+flat_map(immediate_just(v*2))+subscribe 2226.47 ns 138.61 ns 276.69 ns 0.50 136.33 ns
immediate_just+buffer(2)+subscribe 1524.33 ns 14.29 ns 11.80 ns 1.21 14.63 ns
immediate_just+window(2)+subscribe + subscsribe inner 2438.14 ns 906.70 ns 1751.27 ns 0.52 898.39 ns

Conditional Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+take_while(false)+subscribe 851.01 ns - - 0.00 -
immediate_just+take_while(true)+subscribe 857.58 ns 0.31 ns 0.29 ns 1.08 0.31 ns

Utility Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just(1)+subscribe_on(immediate)+subscribe 2000.70 ns 0.31 ns 0.29 ns 1.08 0.31 ns

Combining Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 3260.21 ns 160.16 ns 312.59 ns 0.51 155.91 ns
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 3744.70 ns 141.03 ns 311.22 ns 0.45 140.15 ns
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 143.26 ns 288.41 ns 0.50 138.16 ns
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 3411.00 ns 380.04 ns 697.41 ns 0.54 382.10 ns
immediate_just(1) + zip(immediate_just(2)) + subscribe 2290.04 ns 200.67 ns 327.35 ns 0.61 200.03 ns
immediate_just(immediate_just(1), immediate_just(1)) + concat() + subscribe 3256.58 ns 228.02 ns 473.53 ns 0.48 224.66 ns

Subjects

name rxcpp rpp prev rpp ratio rpp no optimization
publish_subject with 1 observer - on_next 52.52 ns 19.84 ns 42.99 ns 0.46 23.04 ns
subscribe 100 observers to publish_subject 210078.40 ns 17536.18 ns 34608.06 ns 0.51 17543.55 ns
100 on_next to 100 observers to publish_subject 38296.70 ns 20218.18 ns 19004.67 ns 1.06 20271.49 ns

Scenarios

name rxcpp rpp prev rpp ratio rpp no optimization
basic sample 1295.15 ns 11.50 ns 8.74 ns 1.32 21.45 ns
basic sample with immediate scheduler 1304.69 ns 5.90 ns 4.32 ns 1.37 6.52 ns
mix operators with disposables and without disposables 6532.76 ns 1174.84 ns 1865.05 ns 0.63 1495.58 ns
single disposable and looooooong indentity chain 27752.59 ns 1238.02 ns 2142.85 ns 0.58 4663.79 ns

Aggregating Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+reduce(10, std::plus)+subscribe 997.97 ns 0.31 ns 0.29 ns 1.08 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 2173.44 ns 1174.04 ns 1245.00 ns 0.94 1165.04 ns
create(on_error())+retry(1)+subscribe 655.93 ns 138.98 ns 265.89 ns 0.52 139.15 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

@pre-commit-ci pre-commit-ci Bot force-pushed the pre-commit-ci-update-config branch 2 times, most recently from 1db6058 to 9465c65 Compare May 4, 2026 20:28
updates:
- [github.com/sirosen/check-jsonschema: 0.37.1 → 0.37.2](python-jsonschema/check-jsonschema@0.37.1...0.37.2)
- [github.com/pre-commit/mirrors-clang-format: v22.1.2 → v22.1.5](pre-commit/mirrors-clang-format@v22.1.2...v22.1.5)
@pre-commit-ci pre-commit-ci Bot force-pushed the pre-commit-ci-update-config branch from 9465c65 to 4081981 Compare May 11, 2026 20:22
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.

0 participants