Skip to content

Commit

Permalink
[pre-commit.ci] pre-commit autoupdate (#695)
Browse files Browse the repository at this point in the history
updates:
- [github.com/pre-commit/mirrors-clang-format: v19.1.5 → v19.1.6](pre-commit/mirrors-clang-format@v19.1.5...v19.1.6)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
  • Loading branch information
pre-commit-ci[bot] authored Jan 7, 2025
1 parent 40a3f3c commit b212dbc
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ repos:
- id: trailing-whitespace # trims trailing whitespace.

- repo: https://github.com/pre-commit/mirrors-clang-format
rev: 'v19.1.5'
rev: 'v19.1.6'
hooks:
- id: clang-format
args: ["-style=file", "-i"]
Expand Down

1 comment on commit b212dbc

@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.58 ns 1.54 ns 1.87 ns 0.83 1.85 ns
Subscribe empty callbacks to empty observable via pipe operator 303.71 ns 1.54 ns 1.85 ns 0.83 1.85 ns

Sources

name rxcpp rpp prev rpp ratio rpp no optimization
from array of 1 - create + subscribe + immediate 688.27 ns 0.31 ns 0.31 ns 1.00 0.31 ns
from array of 1 - create + subscribe + current_thread 1040.94 ns 3.42 ns 3.42 ns 1.00 3.71 ns
concat_as_source of just(1 immediate) create + subscribe 2250.82 ns 119.40 ns 119.27 ns 1.00 115.80 ns
defer from array of 1 - defer + create + subscribe + immediate 726.12 ns 0.31 ns 0.31 ns 1.00 0.31 ns
interval - interval + take(3) + subscribe + immediate 2132.26 ns 59.23 ns 59.27 ns 1.00 59.19 ns
interval - interval + take(3) + subscribe + current_thread 3003.46 ns 32.46 ns 32.43 ns 1.00 33.96 ns
from array of 1 - create + as_blocking + subscribe + new_thread 29513.58 ns 27513.55 ns 27560.66 ns 1.00 28439.76 ns
from array of 1000 - create + as_blocking + subscribe + new_thread 40547.76 ns 50418.20 ns 52602.73 ns 0.96 51615.67 ns
concat_as_source of just(1 immediate) and just(1,2 immediate)create + subscribe 3485.21 ns 134.69 ns 135.02 ns 1.00 149.26 ns

Filtering Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+take(1)+subscribe 1073.91 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just+filter(true)+subscribe 853.76 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just(1,2)+skip(1)+subscribe 1007.59 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just(1,1,2)+distinct_until_changed()+subscribe 874.69 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just(1,2)+first()+subscribe 1251.60 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just(1,2)+last()+subscribe 904.63 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just+take_last(1)+subscribe 1105.77 ns 19.67 ns 17.90 ns 1.10 19.15 ns
immediate_just(1,2,3)+element_at(1)+subscribe 864.48 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 270.22 ns 0.62 ns 1.54 ns 0.40 0.46 ns
current_thread scheduler create worker + schedule 362.11 ns 4.94 ns 4.94 ns 1.00 4.32 ns
current_thread scheduler create worker + schedule + recursive schedule 806.82 ns 61.44 ns 60.77 ns 1.01 60.48 ns

Transforming Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+map(v*2)+subscribe 870.72 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just+scan(10, std::plus)+subscribe 896.66 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just+flat_map(immediate_just(v*2))+subscribe 2333.81 ns 139.02 ns 144.10 ns 0.96 162.66 ns
immediate_just+buffer(2)+subscribe 1528.59 ns 13.90 ns 13.59 ns 1.02 17.97 ns
immediate_just+window(2)+subscribe + subscsribe inner 2355.43 ns 1305.51 ns 1310.25 ns 1.00 1308.93 ns

Conditional Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+take_while(false)+subscribe 841.06 ns - - 0.00 -
immediate_just+take_while(true)+subscribe 849.52 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 1974.16 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 3416.50 ns 141.09 ns 138.04 ns 1.02 227.88 ns
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 3662.75 ns 154.18 ns 157.91 ns 0.98 213.61 ns
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 136.63 ns 139.60 ns 0.98 151.46 ns
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 3518.53 ns 422.58 ns 411.68 ns 1.03 375.71 ns
immediate_just(1) + zip(immediate_just(2)) + subscribe 2090.72 ns 217.91 ns 220.99 ns 0.99 207.21 ns
immediate_just(immediate_just(1), immediate_just(1)) + concat() + subscribe 3099.73 ns 223.43 ns 230.22 ns 0.97 252.91 ns

Subjects

name rxcpp rpp prev rpp ratio rpp no optimization
publish_subject with 1 observer - on_next 34.49 ns 23.08 ns 14.70 ns 1.57 15.44 ns
subscribe 100 observers to publish_subject 201274.33 ns 16021.04 ns 15889.50 ns 1.01 16119.06 ns
100 on_next to 100 observers to publish_subject 27242.18 ns 17139.20 ns 17257.79 ns 0.99 17749.02 ns

Scenarios

name rxcpp rpp prev rpp ratio rpp no optimization
basic sample 1413.08 ns 13.28 ns 13.27 ns 1.00 24.38 ns
basic sample with immediate scheduler 1377.16 ns 5.55 ns 5.55 ns 1.00 19.13 ns
mix operators with disposables and without disposables 6359.10 ns 1406.92 ns 1400.11 ns 1.00 1803.34 ns
single disposable and looooooong indentity chain 23542.22 ns 1082.54 ns 1112.08 ns 0.97 4692.87 ns

Aggregating Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+reduce(10, std::plus)+subscribe 898.19 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 2058.94 ns 986.65 ns 989.75 ns 1.00 993.86 ns
create(on_error())+retry(1)+subscribe 613.00 ns 110.10 ns 110.83 ns 0.99 114.08 ns

ci-macos

General

name rxcpp rpp prev rpp ratio rpp no optimization
Subscribe empty callbacks to empty observable 370.43 ns 0.47 ns 0.49 ns 0.96 0.47 ns
Subscribe empty callbacks to empty observable via pipe operator 361.44 ns 0.47 ns 0.48 ns 0.97 0.50 ns

Sources

name rxcpp rpp prev rpp ratio rpp no optimization
from array of 1 - create + subscribe + immediate 701.25 ns 0.31 ns 0.33 ns 0.96 0.31 ns
from array of 1 - create + subscribe + current_thread 905.46 ns 4.15 ns 4.37 ns 0.95 4.09 ns
concat_as_source of just(1 immediate) create + subscribe 2339.35 ns 177.96 ns 166.31 ns 1.07 178.47 ns
defer from array of 1 - defer + create + subscribe + immediate 734.10 ns 0.31 ns 0.33 ns 0.95 0.34 ns
interval - interval + take(3) + subscribe + immediate 2098.80 ns 49.72 ns 55.79 ns 0.89 56.35 ns
interval - interval + take(3) + subscribe + current_thread 2357.31 ns 29.36 ns 32.21 ns 0.91 32.03 ns
from array of 1 - create + as_blocking + subscribe + new_thread 19886.79 ns 16740.23 ns 19737.80 ns 0.85 20475.62 ns
from array of 1000 - create + as_blocking + subscribe + new_thread 25570.85 ns 23141.67 ns 25830.53 ns 0.90 27343.02 ns
concat_as_source of just(1 immediate) and just(1,2 immediate)create + subscribe 3028.11 ns 195.50 ns 182.12 ns 1.07 197.60 ns

Filtering Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+take(1)+subscribe 1118.35 ns 0.32 ns 0.34 ns 0.95 0.34 ns
immediate_just+filter(true)+subscribe 877.48 ns 0.32 ns 0.34 ns 0.95 0.33 ns
immediate_just(1,2)+skip(1)+subscribe 1134.75 ns 0.34 ns 0.34 ns 0.98 0.31 ns
immediate_just(1,1,2)+distinct_until_changed()+subscribe 984.75 ns 0.34 ns 0.34 ns 1.00 0.31 ns
immediate_just(1,2)+first()+subscribe 1698.70 ns 0.36 ns 0.34 ns 1.07 0.31 ns
immediate_just(1,2)+last()+subscribe 1044.54 ns 0.91 ns 0.96 ns 0.95 0.98 ns
immediate_just+take_last(1)+subscribe 1152.13 ns 0.33 ns 0.34 ns 0.95 0.37 ns
immediate_just(1,2,3)+element_at(1)+subscribe 887.23 ns 0.38 ns 0.34 ns 1.13 0.31 ns

Schedulers

name rxcpp rpp prev rpp ratio rpp no optimization
immediate scheduler create worker + schedule 290.62 ns 0.47 ns 0.51 ns 0.91 0.50 ns
current_thread scheduler create worker + schedule 419.85 ns 4.06 ns 4.42 ns 0.92 4.39 ns
current_thread scheduler create worker + schedule + recursive schedule 697.94 ns 61.69 ns 67.11 ns 0.92 66.57 ns

Transforming Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+map(v*2)+subscribe 908.59 ns 2.76 ns 2.74 ns 1.01 2.61 ns
immediate_just+scan(10, std::plus)+subscribe 993.93 ns 0.34 ns 0.34 ns 0.98 0.33 ns
immediate_just+flat_map(immediate_just(v*2))+subscribe 2037.77 ns 191.86 ns 199.75 ns 0.96 194.95 ns
immediate_just+buffer(2)+subscribe 1013.06 ns 19.49 ns 16.77 ns 1.16 16.96 ns
immediate_just+window(2)+subscribe + subscsribe inner 2190.37 ns 1072.01 ns 1095.41 ns 0.98 1137.50 ns

Conditional Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+take_while(false)+subscribe 835.72 ns - - 0.00 -
immediate_just+take_while(true)+subscribe 981.40 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 1963.05 ns 1.87 ns 1.99 ns 0.94 1.60 ns

Combining Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 3019.38 ns 211.83 ns 220.18 ns 0.96 220.63 ns
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 3273.54 ns 223.47 ns 217.60 ns 1.03 218.63 ns
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 220.23 ns 220.94 ns 1.00 216.33 ns
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 3113.32 ns 535.99 ns 546.39 ns 0.98 532.53 ns
immediate_just(1) + zip(immediate_just(2)) + subscribe 2103.73 ns 347.09 ns 354.67 ns 0.98 348.99 ns
immediate_just(immediate_just(1), immediate_just(1)) + concat() + subscribe 3264.29 ns 352.22 ns 354.70 ns 0.99 352.52 ns

Subjects

name rxcpp rpp prev rpp ratio rpp no optimization
publish_subject with 1 observer - on_next 45.21 ns 23.15 ns 20.11 ns 1.15 20.13 ns
subscribe 100 observers to publish_subject 133437.50 ns 16153.75 ns 16545.03 ns 0.98 15341.67 ns
100 on_next to 100 observers to publish_subject 32682.81 ns 14241.78 ns 14918.95 ns 0.95 13786.03 ns

Scenarios

name rxcpp rpp prev rpp ratio rpp no optimization
basic sample 1170.42 ns 11.33 ns 12.35 ns 0.92 23.92 ns
basic sample with immediate scheduler 1167.38 ns 5.00 ns 5.51 ns 0.91 12.29 ns
mix operators with disposables and without disposables 5569.80 ns 1459.39 ns 1515.46 ns 0.96 1770.45 ns
single disposable and looooooong indentity chain 16814.67 ns 1787.56 ns 1701.41 ns 1.05 3464.39 ns

Aggregating Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+reduce(10, std::plus)+subscribe 1369.62 ns 0.44 ns 0.34 ns 1.29 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 4052.68 ns 2985.82 ns 2797.74 ns 1.07 2537.76 ns
create(on_error())+retry(1)+subscribe 1103.76 ns 185.47 ns 180.36 ns 1.03 168.51 ns

ci-ubuntu-clang

General

name rxcpp rpp prev rpp ratio rpp no optimization
Subscribe empty callbacks to empty observable 275.92 ns 1.54 ns 1.54 ns 1.00 1.54 ns
Subscribe empty callbacks to empty observable via pipe operator 275.46 ns 1.54 ns 1.54 ns 1.00 1.54 ns

Sources

name rxcpp rpp prev rpp ratio rpp no optimization
from array of 1 - create + subscribe + immediate 589.87 ns 0.31 ns 0.31 ns 1.00 0.31 ns
from array of 1 - create + subscribe + current_thread 787.20 ns 4.01 ns 4.01 ns 1.00 4.01 ns
concat_as_source of just(1 immediate) create + subscribe 2347.33 ns 129.44 ns 129.29 ns 1.00 129.08 ns
defer from array of 1 - defer + create + subscribe + immediate 773.83 ns 0.31 ns 0.31 ns 1.00 0.31 ns
interval - interval + take(3) + subscribe + immediate 2227.08 ns 58.30 ns 58.58 ns 1.00 58.31 ns
interval - interval + take(3) + subscribe + current_thread 3217.37 ns 30.86 ns 30.86 ns 1.00 31.47 ns
from array of 1 - create + as_blocking + subscribe + new_thread 29442.53 ns 27626.36 ns 28138.41 ns 0.98 27664.24 ns
from array of 1000 - create + as_blocking + subscribe + new_thread 38954.81 ns 36648.62 ns 33594.94 ns 1.09 32820.56 ns
concat_as_source of just(1 immediate) and just(1,2 immediate)create + subscribe 3635.42 ns 148.97 ns 148.69 ns 1.00 148.23 ns

Filtering Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+take(1)+subscribe 1170.46 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just+filter(true)+subscribe 847.39 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just(1,2)+skip(1)+subscribe 1078.02 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just(1,1,2)+distinct_until_changed()+subscribe 925.16 ns 0.62 ns 0.62 ns 1.00 0.31 ns
immediate_just(1,2)+first()+subscribe 1373.38 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just(1,2)+last()+subscribe 1001.26 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just+take_last(1)+subscribe 1193.72 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just(1,2,3)+element_at(1)+subscribe 869.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 277.59 ns 0.63 ns 0.63 ns 1.00 0.63 ns
current_thread scheduler create worker + schedule 402.09 ns 4.01 ns 4.01 ns 1.00 4.02 ns
current_thread scheduler create worker + schedule + recursive schedule 844.10 ns 55.45 ns 55.26 ns 1.00 54.71 ns

Transforming Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+map(v*2)+subscribe 846.30 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just+scan(10, std::plus)+subscribe 960.10 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just+flat_map(immediate_just(v*2))+subscribe 2259.88 ns 140.25 ns 140.68 ns 1.00 136.93 ns
immediate_just+buffer(2)+subscribe 1503.18 ns 13.58 ns 13.59 ns 1.00 13.90 ns
immediate_just+window(2)+subscribe + subscsribe inner 2421.29 ns 911.55 ns 921.06 ns 0.99 915.25 ns

Conditional Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+take_while(false)+subscribe 828.73 ns - - 0.00 -
immediate_just+take_while(true)+subscribe 840.67 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 1979.91 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 3300.49 ns 159.33 ns 160.32 ns 0.99 155.09 ns
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 3736.01 ns 139.67 ns 140.15 ns 1.00 139.23 ns
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 141.58 ns 141.71 ns 1.00 145.15 ns
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 3476.87 ns 396.37 ns 377.37 ns 1.05 378.70 ns
immediate_just(1) + zip(immediate_just(2)) + subscribe 2240.67 ns 195.38 ns 202.25 ns 0.97 193.89 ns
immediate_just(immediate_just(1), immediate_just(1)) + concat() + subscribe 3223.39 ns 223.16 ns 225.09 ns 0.99 223.82 ns

Subjects

name rxcpp rpp prev rpp ratio rpp no optimization
publish_subject with 1 observer - on_next 54.42 ns 17.72 ns 17.63 ns 1.00 18.29 ns
subscribe 100 observers to publish_subject 209177.80 ns 16194.69 ns 16146.57 ns 1.00 16096.08 ns
100 on_next to 100 observers to publish_subject 35422.24 ns 23516.11 ns 23499.17 ns 1.00 23618.57 ns

Scenarios

name rxcpp rpp prev rpp ratio rpp no optimization
basic sample 1292.36 ns 11.11 ns 11.11 ns 1.00 20.09 ns
basic sample with immediate scheduler 1295.02 ns 5.86 ns 5.86 ns 1.00 6.48 ns
mix operators with disposables and without disposables 6432.46 ns 1167.99 ns 1179.39 ns 0.99 1476.12 ns
single disposable and looooooong indentity chain 27381.05 ns 1244.48 ns 1271.66 ns 0.98 4661.10 ns

Aggregating Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+reduce(10, std::plus)+subscribe 987.84 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 2205.05 ns 1155.68 ns 1168.55 ns 0.99 1156.85 ns
create(on_error())+retry(1)+subscribe 648.65 ns 138.78 ns 138.48 ns 1.00 138.39 ns

ci-windows

General

name rxcpp rpp prev rpp ratio rpp no optimization
Subscribe empty callbacks to empty observable 564.52 ns 1.85 ns 2.16 ns 0.86 2.16 ns
Subscribe empty callbacks to empty observable via pipe operator 585.31 ns 1.85 ns 2.16 ns 0.86 2.16 ns

Sources

name rxcpp rpp prev rpp ratio rpp no optimization
from array of 1 - create + subscribe + immediate 1400.27 ns 5.86 ns 5.86 ns 1.00 4.93 ns
from array of 1 - create + subscribe + current_thread 1668.02 ns 15.75 ns 15.75 ns 1.00 15.44 ns
concat_as_source of just(1 immediate) create + subscribe 3705.30 ns 164.24 ns 167.18 ns 0.98 181.31 ns
defer from array of 1 - defer + create + subscribe + immediate 1185.96 ns 5.55 ns 5.55 ns 1.00 5.24 ns
interval - interval + take(3) + subscribe + immediate 3114.02 ns 140.92 ns 139.87 ns 1.01 141.78 ns
interval - interval + take(3) + subscribe + current_thread 3419.40 ns 60.09 ns 59.86 ns 1.00 62.86 ns
from array of 1 - create + as_blocking + subscribe + new_thread 119877.78 ns 112310.00 ns 116530.00 ns 0.96 115966.67 ns
from array of 1000 - create + as_blocking + subscribe + new_thread 127537.50 ns 132266.67 ns 137485.71 ns 0.96 132155.56 ns
concat_as_source of just(1 immediate) and just(1,2 immediate)create + subscribe 5360.28 ns 200.24 ns 200.69 ns 1.00 213.53 ns

Filtering Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+take(1)+subscribe 1811.42 ns 19.74 ns 19.44 ns 1.02 20.35 ns
immediate_just+filter(true)+subscribe 1316.15 ns 18.82 ns 18.51 ns 1.02 20.96 ns
immediate_just(1,2)+skip(1)+subscribe 1725.34 ns 18.51 ns 17.89 ns 1.03 20.37 ns
immediate_just(1,1,2)+distinct_until_changed()+subscribe 1602.84 ns 23.50 ns 20.67 ns 1.14 24.99 ns
immediate_just(1,2)+first()+subscribe 2369.75 ns 17.29 ns 18.20 ns 0.95 18.52 ns
immediate_just(1,2)+last()+subscribe 1477.87 ns 18.51 ns 19.12 ns 0.97 22.21 ns
immediate_just+take_last(1)+subscribe 2008.79 ns 64.79 ns 64.58 ns 1.00 67.77 ns
immediate_just(1,2,3)+element_at(1)+subscribe 1360.30 ns 21.93 ns 20.99 ns 1.04 22.84 ns

Schedulers

name rxcpp rpp prev rpp ratio rpp no optimization
immediate scheduler create worker + schedule 487.19 ns 4.94 ns 4.94 ns 1.00 4.32 ns
current_thread scheduler create worker + schedule 660.51 ns 11.16 ns 11.89 ns 0.94 11.11 ns
current_thread scheduler create worker + schedule + recursive schedule 1333.93 ns 99.92 ns 98.52 ns 1.01 97.60 ns

Transforming Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+map(v*2)+subscribe 1336.13 ns 18.81 ns 18.81 ns 1.00 21.27 ns
immediate_just+scan(10, std::plus)+subscribe 1437.57 ns 21.29 ns 21.04 ns 1.01 20.02 ns
immediate_just+flat_map(immediate_just(v*2))+subscribe 3473.18 ns 184.14 ns 183.44 ns 1.00 206.97 ns
immediate_just+buffer(2)+subscribe 2314.67 ns 65.55 ns 64.08 ns 1.02 69.36 ns
immediate_just+window(2)+subscribe + subscsribe inner 4048.41 ns 1310.67 ns 1276.74 ns 1.03 2457.01 ns

Conditional Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+take_while(false)+subscribe 1309.46 ns 17.57 ns 17.58 ns 1.00 19.11 ns
immediate_just+take_while(true)+subscribe 1318.84 ns 18.81 ns 18.50 ns 1.02 21.39 ns

Utility Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just(1)+subscribe_on(immediate)+subscribe 3227.67 ns 11.10 ns 11.10 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 5076.17 ns 203.87 ns 204.52 ns 1.00 221.13 ns
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 5736.72 ns 194.07 ns 184.63 ns 1.05 193.64 ns
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 195.08 ns 187.03 ns 1.04 195.61 ns
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 5762.44 ns 438.11 ns 438.03 ns 1.00 456.05 ns
immediate_just(1) + zip(immediate_just(2)) + subscribe 3630.74 ns 522.22 ns 510.04 ns 1.02 520.61 ns
immediate_just(immediate_just(1), immediate_just(1)) + concat() + subscribe 4861.02 ns 328.46 ns 323.54 ns 1.02 342.25 ns

Subjects

name rxcpp rpp prev rpp ratio rpp no optimization
publish_subject with 1 observer - on_next 36.27 ns 19.94 ns 20.68 ns 0.96 20.42 ns
subscribe 100 observers to publish_subject 253900.00 ns 27814.29 ns 27000.00 ns 1.03 28126.67 ns
100 on_next to 100 observers to publish_subject 55800.00 ns 33112.90 ns 32686.67 ns 1.01 39222.22 ns

Scenarios

name rxcpp rpp prev rpp ratio rpp no optimization
basic sample 1881.77 ns 96.33 ns 96.72 ns 1.00 113.63 ns
basic sample with immediate scheduler 1887.64 ns 68.64 ns 66.52 ns 1.03 83.41 ns
mix operators with disposables and without disposables 9927.72 ns 1892.18 ns 1895.70 ns 1.00 2606.73 ns
single disposable and looooooong indentity chain 26746.51 ns 1699.22 ns 1707.00 ns 1.00 6469.73 ns

Aggregating Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+reduce(10, std::plus)+subscribe 1463.04 ns 19.43 ns 19.11 ns 1.02 20.10 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 1929.73 ns 349.92 ns 350.03 ns 1.00 370.05 ns
create(on_error())+retry(1)+subscribe 1620.18 ns 142.97 ns 140.86 ns 1.01 138.58 ns

Please sign in to comment.