Skip to content

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

Merged
AlexInLog merged 1 commit into
v2from
pre-commit-ci-update-config
Jun 16, 2025
Merged

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

Conversation

@pre-commit-ci

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

Copy link
Copy Markdown
Contributor

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

coderabbitai Bot commented Jun 16, 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 305.96 ns 1.87 ns 1.87 ns 1.00 1.58 ns
Subscribe empty callbacks to empty observable via pipe operator 304.30 ns 1.86 ns 1.86 ns 1.00 1.55 ns

Sources

name rxcpp rpp prev rpp ratio rpp no optimization
from array of 1 - create + subscribe + immediate 737.01 ns 0.31 ns 0.31 ns 1.00 0.31 ns
from array of 1 - create + subscribe + current_thread 1064.14 ns 3.73 ns 3.73 ns 1.00 3.73 ns
concat_as_source of just(1 immediate) create + subscribe 2243.47 ns 119.87 ns 114.04 ns 1.05 116.55 ns
defer from array of 1 - defer + create + subscribe + immediate 744.36 ns 0.31 ns 0.31 ns 1.00 0.31 ns
interval - interval + take(3) + subscribe + immediate 2191.45 ns 59.61 ns 59.58 ns 1.00 59.59 ns
interval - interval + take(3) + subscribe + current_thread 2986.68 ns 32.75 ns 32.67 ns 1.00 34.51 ns
from array of 1 - create + as_blocking + subscribe + new_thread 30960.37 ns 30961.79 ns 29991.75 ns 1.03 31654.20 ns
from array of 1000 - create + as_blocking + subscribe + new_thread 42253.69 ns 54708.38 ns 54000.14 ns 1.01 55568.42 ns
concat_as_source of just(1 immediate) and just(1,2 immediate)create + subscribe 3505.25 ns 136.10 ns 135.84 ns 1.00 147.72 ns

Filtering Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+take(1)+subscribe 1094.68 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just+filter(true)+subscribe 876.19 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just(1,2)+skip(1)+subscribe 1065.56 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just(1,1,2)+distinct_until_changed()+subscribe 871.65 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just(1,2)+first()+subscribe 1270.51 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just(1,2)+last()+subscribe 972.55 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just+take_last(1)+subscribe 1116.02 ns 18.34 ns 18.34 ns 1.00 20.07 ns
immediate_just(1,2,3)+element_at(1)+subscribe 839.04 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 281.25 ns 1.55 ns 1.55 ns 1.00 0.62 ns
current_thread scheduler create worker + schedule 363.63 ns 4.35 ns 4.35 ns 1.00 4.66 ns
current_thread scheduler create worker + schedule + recursive schedule 826.51 ns 62.32 ns 61.36 ns 1.02 61.80 ns

Transforming Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+map(v*2)+subscribe 869.11 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just+scan(10, std::plus)+subscribe 917.76 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just+flat_map(immediate_just(v*2))+subscribe 2357.30 ns 126.62 ns 122.38 ns 1.03 166.95 ns
immediate_just+buffer(2)+subscribe 1527.82 ns 13.75 ns 13.67 ns 1.01 17.48 ns
immediate_just+window(2)+subscribe + subscsribe inner 2363.45 ns 1321.77 ns 1282.14 ns 1.03 1329.69 ns

Conditional Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+take_while(false)+subscribe 873.89 ns - - 0.00 -
immediate_just+take_while(true)+subscribe 861.76 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 2066.55 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 3502.42 ns 159.73 ns 156.55 ns 1.02 170.00 ns
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 3617.71 ns 188.11 ns 158.65 ns 1.19 164.20 ns
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 137.27 ns 135.42 ns 1.01 153.53 ns
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 3617.62 ns 409.51 ns 412.21 ns 0.99 388.57 ns
immediate_just(1) + zip(immediate_just(2)) + subscribe 2167.92 ns 237.11 ns 219.59 ns 1.08 208.93 ns
immediate_just(immediate_just(1), immediate_just(1)) + concat() + subscribe 3229.85 ns 234.22 ns 238.78 ns 0.98 253.59 ns

Subjects

name rxcpp rpp prev rpp ratio rpp no optimization
publish_subject with 1 observer - on_next 34.78 ns 14.80 ns 14.79 ns 1.00 15.00 ns
subscribe 100 observers to publish_subject 201947.17 ns 19274.28 ns 17861.73 ns 1.08 18908.61 ns
100 on_next to 100 observers to publish_subject 27282.23 ns 16895.33 ns 16898.26 ns 1.00 17673.56 ns

Scenarios

name rxcpp rpp prev rpp ratio rpp no optimization
basic sample 1398.84 ns 13.98 ns 13.06 ns 1.07 22.39 ns
basic sample with immediate scheduler 1440.79 ns 5.28 ns 5.28 ns 1.00 16.16 ns
mix operators with disposables and without disposables 6391.56 ns 1461.03 ns 1448.96 ns 1.01 1831.85 ns
single disposable and looooooong indentity chain 24854.67 ns 1116.60 ns 1048.86 ns 1.06 4789.20 ns

Aggregating Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+reduce(10, std::plus)+subscribe 979.41 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 2063.35 ns 994.29 ns 1001.18 ns 0.99 1013.84 ns
create(on_error())+retry(1)+subscribe 629.87 ns 110.45 ns 111.06 ns 0.99 114.86 ns

ci-macos

General

name rxcpp rpp prev rpp ratio rpp no optimization
Subscribe empty callbacks to empty observable 400.03 ns 0.51 ns 0.93 ns 0.56 0.63 ns
Subscribe empty callbacks to empty observable via pipe operator 379.89 ns 0.50 ns 0.93 ns 0.54 0.58 ns

Sources

name rxcpp rpp prev rpp ratio rpp no optimization
from array of 1 - create + subscribe + immediate 742.49 ns 0.34 ns 0.31 ns 1.07 0.37 ns
from array of 1 - create + subscribe + current_thread 950.71 ns 4.11 ns 4.43 ns 0.93 6.01 ns
concat_as_source of just(1 immediate) create + subscribe 2294.54 ns 178.41 ns 175.72 ns 1.02 221.38 ns
defer from array of 1 - defer + create + subscribe + immediate 799.96 ns 0.34 ns 0.31 ns 1.09 0.58 ns
interval - interval + take(3) + subscribe + immediate 2065.19 ns 55.05 ns 53.45 ns 1.03 58.86 ns
interval - interval + take(3) + subscribe + current_thread 2520.56 ns 31.87 ns 29.69 ns 1.07 33.83 ns
from array of 1 - create + as_blocking + subscribe + new_thread 19889.42 ns 17077.59 ns 25105.56 ns 0.68 56914.24 ns
from array of 1000 - create + as_blocking + subscribe + new_thread 27298.41 ns 23702.91 ns 25136.63 ns 0.94 63561.13 ns
concat_as_source of just(1 immediate) and just(1,2 immediate)create + subscribe 3398.51 ns 198.40 ns 176.80 ns 1.12 203.51 ns

Filtering Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+take(1)+subscribe 1144.25 ns 0.31 ns 0.31 ns 0.99 0.35 ns
immediate_just+filter(true)+subscribe 902.94 ns 0.34 ns 0.31 ns 1.08 0.54 ns
immediate_just(1,2)+skip(1)+subscribe 1055.13 ns 0.31 ns 0.33 ns 0.95 0.34 ns
immediate_just(1,1,2)+distinct_until_changed()+subscribe 811.12 ns 0.31 ns 0.32 ns 0.96 0.44 ns
immediate_just(1,2)+first()+subscribe 1311.74 ns 0.34 ns 0.31 ns 1.09 0.81 ns
immediate_just(1,2)+last()+subscribe 975.08 ns 0.53 ns 0.94 ns 0.56 1.16 ns
immediate_just+take_last(1)+subscribe 1150.02 ns 0.31 ns 0.36 ns 0.88 0.35 ns
immediate_just(1,2,3)+element_at(1)+subscribe 898.09 ns 0.34 ns 0.32 ns 1.06 0.37 ns

Schedulers

name rxcpp rpp prev rpp ratio rpp no optimization
immediate scheduler create worker + schedule 297.38 ns 0.50 ns 0.93 ns 0.54 0.75 ns
current_thread scheduler create worker + schedule 414.64 ns 4.07 ns 4.34 ns 0.94 4.45 ns
current_thread scheduler create worker + schedule + recursive schedule 717.44 ns 73.84 ns 69.42 ns 1.06 131.96 ns

Transforming Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+map(v*2)+subscribe 898.21 ns 2.79 ns 2.47 ns 1.13 2.68 ns
immediate_just+scan(10, std::plus)+subscribe 1035.32 ns 0.34 ns 0.31 ns 1.09 0.43 ns
immediate_just+flat_map(immediate_just(v*2))+subscribe 1979.49 ns 196.87 ns 182.70 ns 1.08 222.36 ns
immediate_just+buffer(2)+subscribe 963.70 ns 15.94 ns 15.95 ns 1.00 29.94 ns
immediate_just+window(2)+subscribe + subscsribe inner 1868.02 ns 971.69 ns 1099.56 ns 0.88 2447.57 ns

Conditional Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+take_while(false)+subscribe 779.63 ns - - 0.00 -
immediate_just+take_while(true)+subscribe 837.06 ns 0.31 ns 0.33 ns 0.96 0.53 ns

Utility Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just(1)+subscribe_on(immediate)+subscribe 1792.71 ns 2.02 ns 1.79 ns 1.13 3.77 ns

Combining Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 2885.27 ns 213.29 ns 208.19 ns 1.02 229.21 ns
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 3428.82 ns 218.72 ns 198.98 ns 1.10 450.33 ns
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 228.59 ns 226.29 ns 1.01 222.83 ns
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 3101.19 ns 547.99 ns 562.52 ns 0.97 542.98 ns
immediate_just(1) + zip(immediate_just(2)) + subscribe 1943.71 ns 319.48 ns 351.37 ns 0.91 414.90 ns
immediate_just(immediate_just(1), immediate_just(1)) + concat() + subscribe 2960.64 ns 336.57 ns 321.28 ns 1.05 372.91 ns

Subjects

name rxcpp rpp prev rpp ratio rpp no optimization
publish_subject with 1 observer - on_next 41.30 ns 21.47 ns 24.08 ns 0.89 40.03 ns
subscribe 100 observers to publish_subject 128000.00 ns 16471.24 ns 16449.30 ns 1.00 30938.71 ns
100 on_next to 100 observers to publish_subject 34748.80 ns 14789.16 ns 14723.68 ns 1.00 22534.72 ns

Scenarios

name rxcpp rpp prev rpp ratio rpp no optimization
basic sample 1315.08 ns 12.43 ns 11.78 ns 1.06 26.82 ns
basic sample with immediate scheduler 1184.15 ns 5.21 ns 5.29 ns 0.99 13.92 ns
mix operators with disposables and without disposables 5187.68 ns 1316.77 ns 1321.95 ns 1.00 4132.91 ns
single disposable and looooooong indentity chain 15008.59 ns 1542.28 ns 1715.71 ns 0.90 5817.99 ns

Aggregating Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+reduce(10, std::plus)+subscribe 962.91 ns 0.31 ns 0.31 ns 1.01 0.50 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 3361.51 ns 2564.97 ns 2582.62 ns 0.99 3081.56 ns
create(on_error())+retry(1)+subscribe 664.73 ns 166.90 ns 178.68 ns 0.93 294.40 ns

ci-ubuntu-clang

General

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

Sources

name rxcpp rpp prev rpp ratio rpp no optimization
from array of 1 - create + subscribe + immediate 562.11 ns 0.31 ns 0.31 ns 1.00 0.31 ns
from array of 1 - create + subscribe + current_thread 804.58 ns 4.04 ns 4.04 ns 1.00 4.05 ns
concat_as_source of just(1 immediate) create + subscribe 2375.59 ns 129.70 ns 130.73 ns 0.99 131.23 ns
defer from array of 1 - defer + create + subscribe + immediate 805.54 ns 0.31 ns 0.31 ns 1.00 0.32 ns
interval - interval + take(3) + subscribe + immediate 2247.01 ns 58.73 ns 58.70 ns 1.00 58.69 ns
interval - interval + take(3) + subscribe + current_thread 3199.54 ns 31.07 ns 31.10 ns 1.00 31.72 ns
from array of 1 - create + as_blocking + subscribe + new_thread 30922.28 ns 31108.67 ns 30303.27 ns 1.03 31030.79 ns
from array of 1000 - create + as_blocking + subscribe + new_thread 41320.11 ns 38056.34 ns 37360.07 ns 1.02 40536.54 ns
concat_as_source of just(1 immediate) and just(1,2 immediate)create + subscribe 3792.98 ns 149.55 ns 147.88 ns 1.01 148.83 ns

Filtering Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+take(1)+subscribe 1187.79 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just+filter(true)+subscribe 869.60 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just(1,2)+skip(1)+subscribe 1116.56 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just(1,1,2)+distinct_until_changed()+subscribe 921.58 ns 0.33 ns 0.32 ns 1.05 0.34 ns
immediate_just(1,2)+first()+subscribe 1442.06 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just(1,2)+last()+subscribe 1037.87 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just+take_last(1)+subscribe 1206.21 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just(1,2,3)+element_at(1)+subscribe 903.03 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 281.04 ns 1.56 ns 1.55 ns 1.01 0.64 ns
current_thread scheduler create worker + schedule 413.84 ns 4.04 ns 4.04 ns 1.00 4.35 ns
current_thread scheduler create worker + schedule + recursive schedule 882.90 ns 55.16 ns 55.13 ns 1.00 55.48 ns

Transforming Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+map(v*2)+subscribe 880.55 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just+scan(10, std::plus)+subscribe 998.99 ns 0.62 ns 0.62 ns 1.00 0.33 ns
immediate_just+flat_map(immediate_just(v*2))+subscribe 2306.15 ns 137.97 ns 137.49 ns 1.00 135.26 ns
immediate_just+buffer(2)+subscribe 1562.57 ns 14.29 ns 14.30 ns 1.00 14.62 ns
immediate_just+window(2)+subscribe + subscsribe inner 2474.51 ns 901.15 ns 923.18 ns 0.98 978.54 ns

Conditional Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+take_while(false)+subscribe 872.85 ns - - 0.00 -
immediate_just+take_while(true)+subscribe 885.81 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 2046.82 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 3317.14 ns 159.62 ns 161.60 ns 0.99 154.53 ns
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 3825.40 ns 141.07 ns 143.66 ns 0.98 138.81 ns
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 143.23 ns 140.11 ns 1.02 138.08 ns
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 3375.53 ns 379.98 ns 379.49 ns 1.00 380.49 ns
immediate_just(1) + zip(immediate_just(2)) + subscribe 2274.35 ns 199.99 ns 199.95 ns 1.00 200.45 ns
immediate_just(immediate_just(1), immediate_just(1)) + concat() + subscribe 3278.95 ns 224.93 ns 223.08 ns 1.01 226.26 ns

Subjects

name rxcpp rpp prev rpp ratio rpp no optimization
publish_subject with 1 observer - on_next 52.46 ns 19.83 ns 18.33 ns 1.08 23.02 ns
subscribe 100 observers to publish_subject 210473.60 ns 17403.28 ns 17550.53 ns 0.99 17502.23 ns
100 on_next to 100 observers to publish_subject 38739.21 ns 20232.24 ns 20283.26 ns 1.00 20257.91 ns

Scenarios

name rxcpp rpp prev rpp ratio rpp no optimization
basic sample 1335.18 ns 11.49 ns 11.50 ns 1.00 21.44 ns
basic sample with immediate scheduler 1343.53 ns 5.90 ns 5.90 ns 1.00 6.51 ns
mix operators with disposables and without disposables 6674.62 ns 1193.25 ns 1190.55 ns 1.00 1534.70 ns
single disposable and looooooong indentity chain 27606.24 ns 1237.46 ns 1249.32 ns 0.99 4789.10 ns

Aggregating Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+reduce(10, std::plus)+subscribe 1025.80 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 2203.27 ns 1165.41 ns 1169.83 ns 1.00 1183.55 ns
create(on_error())+retry(1)+subscribe 679.78 ns 139.37 ns 139.12 ns 1.00 139.41 ns

ci-windows

General

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

Sources

name rxcpp rpp prev rpp ratio rpp no optimization
from array of 1 - create + subscribe + immediate 1158.04 ns 4.93 ns 4.94 ns 1.00 5.55 ns
from array of 1 - create + subscribe + current_thread 1440.92 ns 15.74 ns 15.74 ns 1.00 15.43 ns
concat_as_source of just(1 immediate) create + subscribe 3661.23 ns 175.18 ns 174.62 ns 1.00 177.78 ns
defer from array of 1 - defer + create + subscribe + immediate 1180.41 ns 5.24 ns 5.24 ns 1.00 5.24 ns
interval - interval + take(3) + subscribe + immediate 3232.39 ns 139.79 ns 139.74 ns 1.00 141.12 ns
interval - interval + take(3) + subscribe + current_thread 3403.25 ns 59.79 ns 59.86 ns 1.00 61.72 ns
from array of 1 - create + as_blocking + subscribe + new_thread 127850.00 ns 134066.67 ns 120400.00 ns 1.11 116150.00 ns
from array of 1000 - create + as_blocking + subscribe + new_thread 135437.50 ns 138575.00 ns 136975.00 ns 1.01 132162.50 ns
concat_as_source of just(1 immediate) and just(1,2 immediate)create + subscribe 5306.34 ns 206.00 ns 201.39 ns 1.02 213.75 ns

Filtering Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+take(1)+subscribe 1808.07 ns 19.43 ns 19.42 ns 1.00 20.35 ns
immediate_just+filter(true)+subscribe 1317.32 ns 18.51 ns 18.51 ns 1.00 21.26 ns
immediate_just(1,2)+skip(1)+subscribe 1998.48 ns 17.89 ns 17.91 ns 1.00 20.36 ns
immediate_just(1,1,2)+distinct_until_changed()+subscribe 1371.07 ns 20.67 ns 20.68 ns 1.00 25.60 ns
immediate_just(1,2)+first()+subscribe 2330.39 ns 18.20 ns 18.21 ns 1.00 18.51 ns
immediate_just(1,2)+last()+subscribe 1449.68 ns 19.12 ns 19.15 ns 1.00 22.21 ns
immediate_just+take_last(1)+subscribe 1992.95 ns 65.01 ns 64.93 ns 1.00 69.31 ns
immediate_just(1,2,3)+element_at(1)+subscribe 1338.51 ns 20.97 ns 20.98 ns 1.00 22.84 ns

Schedulers

name rxcpp rpp prev rpp ratio rpp no optimization
immediate scheduler create worker + schedule 481.04 ns 4.32 ns 4.32 ns 1.00 4.32 ns
current_thread scheduler create worker + schedule 650.88 ns 11.21 ns 11.11 ns 1.01 11.35 ns
current_thread scheduler create worker + schedule + recursive schedule 1069.44 ns 99.24 ns 101.36 ns 0.98 100.28 ns

Transforming Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+map(v*2)+subscribe 1322.72 ns 18.81 ns 18.80 ns 1.00 21.27 ns
immediate_just+scan(10, std::plus)+subscribe 1438.12 ns 20.96 ns 20.96 ns 1.00 22.83 ns
immediate_just+flat_map(immediate_just(v*2))+subscribe 3469.26 ns 187.41 ns 185.11 ns 1.01 211.83 ns
immediate_just+buffer(2)+subscribe 2316.25 ns 64.89 ns 63.51 ns 1.02 71.36 ns
immediate_just+window(2)+subscribe + subscsribe inner 3959.45 ns 1217.92 ns 1192.15 ns 1.02 1230.30 ns

Conditional Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+take_while(false)+subscribe 1312.37 ns 17.57 ns 17.57 ns 1.00 19.11 ns
immediate_just+take_while(true)+subscribe 1330.04 ns 18.50 ns 18.50 ns 1.00 20.99 ns

Utility Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just(1)+subscribe_on(immediate)+subscribe 3582.19 ns 11.11 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 5045.67 ns 195.66 ns 195.27 ns 1.00 221.65 ns
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 5662.56 ns 181.10 ns 178.89 ns 1.01 200.55 ns
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 194.27 ns 194.65 ns 1.00 196.14 ns
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 5619.90 ns 448.23 ns 443.65 ns 1.01 466.78 ns
immediate_just(1) + zip(immediate_just(2)) + subscribe 3580.57 ns 522.71 ns 519.56 ns 1.01 519.21 ns
immediate_just(immediate_just(1), immediate_just(1)) + concat() + subscribe 4811.61 ns 319.33 ns 314.38 ns 1.02 326.56 ns

Subjects

name rxcpp rpp prev rpp ratio rpp no optimization
publish_subject with 1 observer - on_next 37.83 ns 29.59 ns 29.27 ns 1.01 30.78 ns
subscribe 100 observers to publish_subject 260625.00 ns 25202.56 ns 25450.00 ns 0.99 24836.36 ns
100 on_next to 100 observers to publish_subject 51943.48 ns 35896.97 ns 35922.58 ns 1.00 32997.06 ns

Scenarios

name rxcpp rpp prev rpp ratio rpp no optimization
basic sample 1855.52 ns 97.59 ns 96.80 ns 1.01 112.78 ns
basic sample with immediate scheduler 1877.94 ns 66.68 ns 68.51 ns 0.97 83.36 ns
mix operators with disposables and without disposables 9834.29 ns 1803.86 ns 1797.99 ns 1.00 2561.46 ns
single disposable and looooooong indentity chain 25611.11 ns 1619.33 ns 1630.37 ns 0.99 6260.49 ns

Aggregating Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+reduce(10, std::plus)+subscribe 1451.82 ns 19.11 ns 19.11 ns 1.00 21.91 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 1970.22 ns 355.80 ns 353.06 ns 1.01 377.91 ns
create(on_error())+retry(1)+subscribe 1679.71 ns 141.24 ns 137.92 ns 1.02 140.26 ns

@codecov

codecov Bot commented Jun 16, 2025

Copy link
Copy Markdown

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 98.66%. Comparing base (437fdb5) to head (050e769).
Report is 1 commits behind head on v2.

Additional details and impacted files
@@           Coverage Diff           @@
##               v2     #717   +/-   ##
=======================================
  Coverage   98.66%   98.66%           
=======================================
  Files         159      159           
  Lines        9926     9926           
=======================================
  Hits         9793     9793           
  Misses        133      133           

☔ 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 752f108 into v2 Jun 16, 2025
54 checks passed
@AlexInLog AlexInLog deleted the pre-commit-ci-update-config branch June 16, 2025 20:16
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