Skip to content

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

Merged
AlexInLog merged 1 commit into
v2from
pre-commit-ci-update-config
May 27, 2025
Merged

[pre-commit.ci] pre-commit autoupdate#713
AlexInLog merged 1 commit into
v2from
pre-commit-ci-update-config

Conversation

@pre-commit-ci

@pre-commit-ci pre-commit-ci Bot commented May 26, 2025

Copy link
Copy Markdown
Contributor

updates:
- [github.com/pre-commit/mirrors-clang-format: v20.1.4 → v20.1.5](pre-commit/mirrors-clang-format@v20.1.4...v20.1.5)
@coderabbitai

coderabbitai Bot commented May 26, 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.


🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Join our Discord community for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@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 306.93 ns 1.87 ns 1.87 ns 1.00 1.86 ns
Subscribe empty callbacks to empty observable via pipe operator 308.16 ns 1.87 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 705.63 ns 0.31 ns 0.31 ns 1.01 0.31 ns
from array of 1 - create + subscribe + current_thread 1061.12 ns 3.73 ns 3.73 ns 1.00 3.73 ns
concat_as_source of just(1 immediate) create + subscribe 2246.62 ns 115.88 ns 116.32 ns 1.00 116.71 ns
defer from array of 1 - defer + create + subscribe + immediate 730.40 ns 0.31 ns 0.31 ns 1.00 0.31 ns
interval - interval + take(3) + subscribe + immediate 2195.46 ns 59.59 ns 59.60 ns 1.00 59.65 ns
interval - interval + take(3) + subscribe + current_thread 2984.05 ns 32.66 ns 32.68 ns 1.00 34.50 ns
from array of 1 - create + as_blocking + subscribe + new_thread 30043.17 ns 28523.75 ns 28617.30 ns 1.00 29673.70 ns
from array of 1000 - create + as_blocking + subscribe + new_thread 40975.27 ns 52574.45 ns 53224.54 ns 0.99 51415.38 ns
concat_as_source of just(1 immediate) and just(1,2 immediate)create + subscribe 3582.33 ns 141.36 ns 145.87 ns 0.97 150.32 ns

Filtering Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+take(1)+subscribe 1089.76 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just+filter(true)+subscribe 835.84 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just(1,2)+skip(1)+subscribe 1038.23 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just(1,1,2)+distinct_until_changed()+subscribe 878.28 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just(1,2)+first()+subscribe 1248.66 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just(1,2)+last()+subscribe 927.51 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just+take_last(1)+subscribe 1115.22 ns 18.33 ns 18.33 ns 1.00 19.57 ns
immediate_just(1,2,3)+element_at(1)+subscribe 838.58 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 268.01 ns 1.55 ns 1.55 ns 1.00 1.55 ns
current_thread scheduler create worker + schedule 371.96 ns 4.35 ns 4.35 ns 1.00 4.66 ns
current_thread scheduler create worker + schedule + recursive schedule 819.88 ns 61.24 ns 61.22 ns 1.00 61.13 ns

Transforming Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+map(v*2)+subscribe 833.87 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just+scan(10, std::plus)+subscribe 943.08 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just+flat_map(immediate_just(v*2))+subscribe 2337.16 ns 122.58 ns 146.15 ns 0.84 190.75 ns
immediate_just+buffer(2)+subscribe 1533.80 ns 13.68 ns 13.68 ns 1.00 17.43 ns
immediate_just+window(2)+subscribe + subscsribe inner 2445.77 ns 1376.32 ns 1297.05 ns 1.06 1355.32 ns

Conditional Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+take_while(false)+subscribe 848.38 ns - - 0.00 -
immediate_just+take_while(true)+subscribe 840.44 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 1957.89 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 3512.62 ns 156.26 ns 154.68 ns 1.01 179.48 ns
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 3701.94 ns 160.47 ns 159.99 ns 1.00 178.26 ns
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 133.65 ns 136.08 ns 0.98 149.88 ns
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 3563.94 ns 379.03 ns 363.59 ns 1.04 629.75 ns
immediate_just(1) + zip(immediate_just(2)) + subscribe 2129.69 ns 213.29 ns 213.57 ns 1.00 218.22 ns
immediate_just(immediate_just(1), immediate_just(1)) + concat() + subscribe 3148.50 ns 253.49 ns 241.12 ns 1.05 252.86 ns

Subjects

name rxcpp rpp prev rpp ratio rpp no optimization
publish_subject with 1 observer - on_next 34.78 ns 14.79 ns 14.77 ns 1.00 14.93 ns
subscribe 100 observers to publish_subject 209011.80 ns 17895.60 ns 18688.85 ns 0.96 17766.51 ns
100 on_next to 100 observers to publish_subject 27315.93 ns 16813.25 ns 16990.23 ns 0.99 16910.21 ns

Scenarios

name rxcpp rpp prev rpp ratio rpp no optimization
basic sample 1435.51 ns 13.06 ns 13.07 ns 1.00 22.39 ns
basic sample with immediate scheduler 1434.59 ns 5.28 ns 5.28 ns 1.00 16.16 ns
mix operators with disposables and without disposables 6546.85 ns 1438.97 ns 1419.61 ns 1.01 1859.59 ns
single disposable and looooooong indentity chain 25263.87 ns 1072.56 ns 1040.54 ns 1.03 5242.82 ns

Aggregating Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+reduce(10, std::plus)+subscribe 924.82 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 2076.42 ns 998.69 ns 996.99 ns 1.00 1003.47 ns
create(on_error())+retry(1)+subscribe 587.23 ns 123.38 ns 110.86 ns 1.11 116.32 ns

ci-macos

General

name rxcpp rpp prev rpp ratio rpp no optimization
Subscribe empty callbacks to empty observable 404.29 ns 0.49 ns 0.50 ns 0.97 0.47 ns
Subscribe empty callbacks to empty observable via pipe operator 396.16 ns 0.50 ns 0.49 ns 1.03 0.47 ns

Sources

name rxcpp rpp prev rpp ratio rpp no optimization
from array of 1 - create + subscribe + immediate 711.04 ns 0.34 ns 0.32 ns 1.04 0.31 ns
from array of 1 - create + subscribe + current_thread 971.52 ns 4.21 ns 4.20 ns 1.00 4.07 ns
concat_as_source of just(1 immediate) create + subscribe 2196.46 ns 173.04 ns 164.88 ns 1.05 160.63 ns
defer from array of 1 - defer + create + subscribe + immediate 752.99 ns 0.32 ns 0.32 ns 1.00 0.32 ns
interval - interval + take(3) + subscribe + immediate 1987.64 ns 52.60 ns 52.59 ns 1.00 49.83 ns
interval - interval + take(3) + subscribe + current_thread 2448.19 ns 30.48 ns 30.47 ns 1.00 29.74 ns
from array of 1 - create + as_blocking + subscribe + new_thread 24886.36 ns 22270.84 ns 20342.96 ns 1.09 19592.31 ns
from array of 1000 - create + as_blocking + subscribe + new_thread 28922.92 ns 26649.13 ns 25555.23 ns 1.04 24638.20 ns
concat_as_source of just(1 immediate) and just(1,2 immediate)create + subscribe 3242.72 ns 189.23 ns 181.96 ns 1.04 186.41 ns

Filtering Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+take(1)+subscribe 1108.88 ns 0.32 ns 0.32 ns 1.00 0.31 ns
immediate_just+filter(true)+subscribe 827.14 ns 0.32 ns 0.32 ns 1.00 0.31 ns
immediate_just(1,2)+skip(1)+subscribe 1063.07 ns 0.33 ns 0.32 ns 1.01 0.31 ns
immediate_just(1,1,2)+distinct_until_changed()+subscribe 830.82 ns 0.32 ns 0.32 ns 1.00 0.31 ns
immediate_just(1,2)+first()+subscribe 1307.42 ns 0.32 ns 0.32 ns 1.00 0.31 ns
immediate_just(1,2)+last()+subscribe 965.62 ns 0.95 ns 0.95 ns 1.00 0.91 ns
immediate_just+take_last(1)+subscribe 1160.97 ns 0.32 ns 0.32 ns 1.00 0.31 ns
immediate_just(1,2,3)+element_at(1)+subscribe 822.87 ns 0.32 ns 0.32 ns 1.00 0.31 ns

Schedulers

name rxcpp rpp prev rpp ratio rpp no optimization
immediate scheduler create worker + schedule 299.77 ns 0.48 ns 0.48 ns 1.00 0.47 ns
current_thread scheduler create worker + schedule 427.57 ns 4.33 ns 4.21 ns 1.03 4.06 ns
current_thread scheduler create worker + schedule + recursive schedule 709.66 ns 64.63 ns 64.72 ns 1.00 61.99 ns

Transforming Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+map(v*2)+subscribe 816.19 ns 2.48 ns 2.49 ns 0.99 2.40 ns
immediate_just+scan(10, std::plus)+subscribe 943.84 ns 0.32 ns 0.32 ns 1.00 0.31 ns
immediate_just+flat_map(immediate_just(v*2))+subscribe 2013.74 ns 189.09 ns 189.99 ns 1.00 183.43 ns
immediate_just+buffer(2)+subscribe 974.62 ns 15.89 ns 15.87 ns 1.00 15.82 ns
immediate_just+window(2)+subscribe + subscsribe inner 1926.56 ns 1027.83 ns 1003.06 ns 1.02 967.66 ns

Conditional Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+take_while(false)+subscribe 800.27 ns - - 0.00 -
immediate_just+take_while(true)+subscribe 819.89 ns 0.32 ns 0.32 ns 1.00 0.31 ns

Utility Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just(1)+subscribe_on(immediate)+subscribe 1849.10 ns 1.63 ns 1.70 ns 0.96 1.60 ns

Combining Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 2852.02 ns 208.21 ns 208.33 ns 1.00 201.76 ns
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 3115.60 ns 205.84 ns 205.91 ns 1.00 201.64 ns
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 209.97 ns 210.21 ns 1.00 203.00 ns
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 2979.91 ns 513.77 ns 516.12 ns 1.00 499.35 ns
immediate_just(1) + zip(immediate_just(2)) + subscribe 2010.27 ns 339.93 ns 331.63 ns 1.03 324.89 ns
immediate_just(immediate_just(1), immediate_just(1)) + concat() + subscribe 2881.90 ns 332.33 ns 330.94 ns 1.00 317.85 ns

Subjects

name rxcpp rpp prev rpp ratio rpp no optimization
publish_subject with 1 observer - on_next 42.64 ns 22.24 ns 22.36 ns 0.99 21.88 ns
subscribe 100 observers to publish_subject 131069.44 ns 17023.62 ns 17020.84 ns 1.00 16446.24 ns
100 on_next to 100 observers to publish_subject 32717.74 ns 14230.80 ns 14173.88 ns 1.00 13721.69 ns

Scenarios

name rxcpp rpp prev rpp ratio rpp no optimization
basic sample 1214.04 ns 11.63 ns 11.63 ns 1.00 23.72 ns
basic sample with immediate scheduler 1216.40 ns 5.20 ns 5.20 ns 1.00 11.86 ns
mix operators with disposables and without disposables 5655.83 ns 1363.44 ns 1385.23 ns 0.98 1577.34 ns
single disposable and looooooong indentity chain 16310.19 ns 1684.02 ns 1654.81 ns 1.02 3467.16 ns

Aggregating Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+reduce(10, std::plus)+subscribe 963.91 ns 0.32 ns 0.32 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 3421.56 ns 2643.22 ns 2757.46 ns 0.96 2566.54 ns
create(on_error())+retry(1)+subscribe 692.19 ns 172.18 ns 173.53 ns 0.99 170.21 ns

ci-ubuntu-clang

General

name rxcpp rpp prev rpp ratio rpp no optimization
Subscribe empty callbacks to empty observable 269.82 ns 0.65 ns 1.56 ns 0.42 1.55 ns
Subscribe empty callbacks to empty observable via pipe operator 268.22 ns 0.64 ns 1.55 ns 0.41 1.55 ns

Sources

name rxcpp rpp prev rpp ratio rpp no optimization
from array of 1 - create + subscribe + immediate 574.00 ns 0.31 ns 0.31 ns 1.00 0.31 ns
from array of 1 - create + subscribe + current_thread 791.15 ns 4.03 ns 4.04 ns 1.00 4.04 ns
concat_as_source of just(1 immediate) create + subscribe 2384.27 ns 131.34 ns 131.55 ns 1.00 131.24 ns
defer from array of 1 - defer + create + subscribe + immediate 837.20 ns 0.31 ns 0.31 ns 1.00 0.31 ns
interval - interval + take(3) + subscribe + immediate 2244.16 ns 58.66 ns 58.71 ns 1.00 58.69 ns
interval - interval + take(3) + subscribe + current_thread 3188.47 ns 31.07 ns 31.11 ns 1.00 31.76 ns
from array of 1 - create + as_blocking + subscribe + new_thread 30114.03 ns 30627.14 ns 29549.86 ns 1.04 28160.00 ns
from array of 1000 - create + as_blocking + subscribe + new_thread 40997.93 ns 37960.07 ns 37267.85 ns 1.02 35857.67 ns
concat_as_source of just(1 immediate) and just(1,2 immediate)create + subscribe 3697.63 ns 148.94 ns 149.42 ns 1.00 149.06 ns

Filtering Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+take(1)+subscribe 1206.78 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just+filter(true)+subscribe 880.37 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just(1,2)+skip(1)+subscribe 1130.01 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just(1,1,2)+distinct_until_changed()+subscribe 931.40 ns 0.32 ns 0.32 ns 1.01 0.32 ns
immediate_just(1,2)+first()+subscribe 1428.37 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just(1,2)+last()+subscribe 1051.34 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just+take_last(1)+subscribe 1245.36 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just(1,2,3)+element_at(1)+subscribe 897.02 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.49 ns 1.55 ns 0.64 ns 2.43 0.64 ns
current_thread scheduler create worker + schedule 419.15 ns 4.03 ns 4.35 ns 0.93 4.04 ns
current_thread scheduler create worker + schedule + recursive schedule 885.40 ns 66.30 ns 55.19 ns 1.20 54.83 ns

Transforming Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+map(v*2)+subscribe 880.34 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just+scan(10, std::plus)+subscribe 998.36 ns 0.62 ns 0.62 ns 1.00 0.32 ns
immediate_just+flat_map(immediate_just(v*2))+subscribe 2313.28 ns 138.17 ns 136.87 ns 1.01 135.94 ns
immediate_just+buffer(2)+subscribe 1569.96 ns 14.28 ns 13.98 ns 1.02 14.60 ns
immediate_just+window(2)+subscribe + subscsribe inner 2519.86 ns 910.87 ns 897.47 ns 1.01 924.20 ns

Conditional Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+take_while(false)+subscribe 874.45 ns - - 0.00 -
immediate_just+take_while(true)+subscribe 902.28 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 2058.89 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 3330.88 ns 159.55 ns 160.43 ns 0.99 156.27 ns
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 3922.95 ns 139.85 ns 138.09 ns 1.01 138.35 ns
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 143.11 ns 146.25 ns 0.98 138.16 ns
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 3473.84 ns 380.40 ns 387.42 ns 0.98 382.53 ns
immediate_just(1) + zip(immediate_just(2)) + subscribe 2307.53 ns 198.53 ns 201.06 ns 0.99 200.13 ns
immediate_just(immediate_just(1), immediate_just(1)) + concat() + subscribe 3391.05 ns 223.83 ns 223.66 ns 1.00 244.21 ns

Subjects

name rxcpp rpp prev rpp ratio rpp no optimization
publish_subject with 1 observer - on_next 52.54 ns 19.87 ns 23.32 ns 0.85 22.94 ns
subscribe 100 observers to publish_subject 211294.00 ns 17442.40 ns 17520.62 ns 1.00 18355.19 ns
100 on_next to 100 observers to publish_subject 48048.42 ns 20232.04 ns 20577.02 ns 0.98 20334.39 ns

Scenarios

name rxcpp rpp prev rpp ratio rpp no optimization
basic sample 1325.83 ns 11.48 ns 11.50 ns 1.00 21.43 ns
basic sample with immediate scheduler 1338.63 ns 5.90 ns 5.93 ns 0.99 6.52 ns
mix operators with disposables and without disposables 6644.54 ns 1157.34 ns 1172.26 ns 0.99 1503.87 ns
single disposable and looooooong indentity chain 27902.56 ns 1249.57 ns 1255.66 ns 1.00 4767.45 ns

Aggregating Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+reduce(10, std::plus)+subscribe 1033.11 ns 0.31 ns 0.32 ns 0.99 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.81 ns 1172.77 ns 1183.86 ns 0.99 1176.10 ns
create(on_error())+retry(1)+subscribe 685.36 ns 139.39 ns 139.06 ns 1.00 139.37 ns

ci-windows

General

name rxcpp rpp prev rpp ratio rpp no optimization
Subscribe empty callbacks to empty observable 563.22 ns 2.16 ns 2.16 ns 1.00 1.85 ns
Subscribe empty callbacks to empty observable via pipe operator 578.25 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 1159.01 ns 4.93 ns 4.93 ns 1.00 5.55 ns
from array of 1 - create + subscribe + current_thread 1419.43 ns 15.74 ns 15.75 ns 1.00 15.44 ns
concat_as_source of just(1 immediate) create + subscribe 3716.67 ns 185.34 ns 173.40 ns 1.07 177.19 ns
defer from array of 1 - defer + create + subscribe + immediate 1191.30 ns 5.24 ns 5.24 ns 1.00 5.24 ns
interval - interval + take(3) + subscribe + immediate 3386.60 ns 140.93 ns 139.99 ns 1.01 142.13 ns
interval - interval + take(3) + subscribe + current_thread 3412.54 ns 58.73 ns 60.19 ns 0.98 63.11 ns
from array of 1 - create + as_blocking + subscribe + new_thread 122700.00 ns 119680.00 ns 112566.67 ns 1.06 124366.67 ns
from array of 1000 - create + as_blocking + subscribe + new_thread 141137.50 ns 140187.50 ns 130000.00 ns 1.08 138975.00 ns
concat_as_source of just(1 immediate) and just(1,2 immediate)create + subscribe 5334.57 ns 210.85 ns 199.72 ns 1.06 215.68 ns

Filtering Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+take(1)+subscribe 1827.81 ns 19.73 ns 19.44 ns 1.02 21.27 ns
immediate_just+filter(true)+subscribe 1625.96 ns 18.80 ns 18.51 ns 1.02 21.58 ns
immediate_just(1,2)+skip(1)+subscribe 1736.38 ns 18.51 ns 17.90 ns 1.03 21.60 ns
immediate_just(1,1,2)+distinct_until_changed()+subscribe 1346.14 ns 23.45 ns 20.69 ns 1.13 26.84 ns
immediate_just(1,2)+first()+subscribe 2350.31 ns 17.28 ns 18.21 ns 0.95 19.43 ns
immediate_just(1,2)+last()+subscribe 1742.77 ns 18.51 ns 19.14 ns 0.97 22.83 ns
immediate_just+take_last(1)+subscribe 2047.81 ns 65.23 ns 64.38 ns 1.01 70.53 ns
immediate_just(1,2,3)+element_at(1)+subscribe 1622.98 ns 21.90 ns 20.98 ns 1.04 21.62 ns

Schedulers

name rxcpp rpp prev rpp ratio rpp no optimization
immediate scheduler create worker + schedule 476.08 ns 4.32 ns 4.32 ns 1.00 4.32 ns
current_thread scheduler create worker + schedule 647.65 ns 11.11 ns 11.12 ns 1.00 11.11 ns
current_thread scheduler create worker + schedule + recursive schedule 1336.64 ns 98.98 ns 99.95 ns 0.99 99.80 ns

Transforming Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+map(v*2)+subscribe 1322.12 ns 18.81 ns 18.82 ns 1.00 21.58 ns
immediate_just+scan(10, std::plus)+subscribe 1438.95 ns 21.27 ns 20.96 ns 1.01 23.74 ns
immediate_just+flat_map(immediate_just(v*2))+subscribe 3852.63 ns 197.71 ns 183.42 ns 1.08 210.49 ns
immediate_just+buffer(2)+subscribe 2360.00 ns 64.59 ns 63.35 ns 1.02 71.88 ns
immediate_just+window(2)+subscribe + subscsribe inner 4050.00 ns 1206.40 ns 1184.82 ns 1.02 1218.30 ns

Conditional Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+take_while(false)+subscribe 1301.66 ns 17.58 ns 17.58 ns 1.00 19.11 ns
immediate_just+take_while(true)+subscribe 1315.54 ns 18.80 ns 18.51 ns 1.02 21.58 ns

Utility Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just(1)+subscribe_on(immediate)+subscribe 3616.04 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 5112.04 ns 209.23 ns 199.94 ns 1.05 216.94 ns
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 5663.37 ns 191.53 ns 182.47 ns 1.05 201.02 ns
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 206.45 ns 195.32 ns 1.06 202.33 ns
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 6071.11 ns 445.88 ns 437.93 ns 1.02 463.55 ns
immediate_just(1) + zip(immediate_just(2)) + subscribe 3889.80 ns 535.91 ns 514.84 ns 1.04 508.18 ns
immediate_just(immediate_just(1), immediate_just(1)) + concat() + subscribe 4884.32 ns 328.03 ns 309.78 ns 1.06 321.33 ns

Subjects

name rxcpp rpp prev rpp ratio rpp no optimization
publish_subject with 1 observer - on_next 36.95 ns 29.79 ns 29.34 ns 1.02 30.07 ns
subscribe 100 observers to publish_subject 261025.00 ns 26662.79 ns 25837.50 ns 1.03 25343.90 ns
100 on_next to 100 observers to publish_subject 51995.24 ns 35886.67 ns 35920.69 ns 1.00 35474.19 ns

Scenarios

name rxcpp rpp prev rpp ratio rpp no optimization
basic sample 1854.78 ns 95.61 ns 96.21 ns 0.99 111.91 ns
basic sample with immediate scheduler 1876.91 ns 69.12 ns 68.43 ns 1.01 82.07 ns
mix operators with disposables and without disposables 9461.26 ns 1842.38 ns 1793.50 ns 1.03 2458.35 ns
single disposable and looooooong indentity chain 25593.33 ns 1647.30 ns 1695.39 ns 0.97 6287.43 ns

Aggregating Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+reduce(10, std::plus)+subscribe 1462.31 ns 19.42 ns 19.13 ns 1.02 22.81 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 2292.15 ns 361.89 ns 350.98 ns 1.03 364.97 ns
create(on_error())+retry(1)+subscribe 1546.43 ns 148.80 ns 140.07 ns 1.06 141.73 ns

@codecov

codecov Bot commented May 26, 2025

Copy link
Copy Markdown

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 98.65%. Comparing base (0e87ba8) to head (feff385).
Report is 1 commits behind head on v2.

Additional details and impacted files
@@           Coverage Diff           @@
##               v2     #713   +/-   ##
=======================================
  Coverage   98.65%   98.65%           
=======================================
  Files         156      156           
  Lines        9804     9804           
=======================================
  Hits         9672     9672           
  Misses        132      132           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@sonarqubecloud

Copy link
Copy Markdown

@AlexInLog AlexInLog merged commit 3ed07a4 into v2 May 27, 2025
54 checks passed
@AlexInLog AlexInLog deleted the pre-commit-ci-update-config branch May 27, 2025 07:12
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