Skip to content

Commit

Permalink
Update links
Browse files Browse the repository at this point in the history
  • Loading branch information
victimsnino authored Oct 14, 2024
1 parent 6762517 commit 16fe752
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 6 deletions.
8 changes: 4 additions & 4 deletions Readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
![GitHub commit activity (v2)](https://img.shields.io/github/commit-activity/m/victimsnino/ReactivePlusPlus/v2)

[![User guide](https://img.shields.io/badge/link-User_guide-green)](https://victimsnino.github.io/ReactivePlusPlus/v2/docs/html/index.html)
[![API Reference](https://img.shields.io/badge/link-API_Reference-green)](https://victimsnino.github.io/ReactivePlusPlus/v2/docs/html/group__rpp.html)
[![API Reference](https://img.shields.io/badge/link-API_Reference-green)](https://victimsnino.github.io/ReactivePlusPlus/v2/docs/html/topics.html)
[![Benchmarks](https://img.shields.io/badge/link-Benchmarks-green)](https://victimsnino.github.io/ReactivePlusPlus/v2/benchmark)

[![Join the chat in Discord: https://discord.gg/KWMR3RNkVz](https://img.shields.io/badge/Discord-Chat!-brightgreen.svg)](https://discord.gg/KWMR3RNkVz)
Expand Down Expand Up @@ -62,7 +62,7 @@ Another implementation, [another-rxcpp](https://github.com/CODIANZ/another-rxcpp
- **ReactivePlusPlus** keeps balance between performance and type-erasing mechanism
- **ReactivePlusPlus** is fast: every part of code written with performance in mind. Starting from tests over amount of copies/move and finishing to Continuous Benchmarking. Benchmarks prove that RPP faster than RxCPP in most cases: [Continuous benchmarking results and comparison with RxCpp](https://victimsnino.github.io/ReactivePlusPlus/v2/benchmark)
Currently ReactivePlusPlus is still under development but it has a lot of implemented operators for now. List of implemented features can be found in [API Reference](https://victimsnino.github.io/ReactivePlusPlus/v2/docs/html/group__rpp.html) with very detailed documentation for each of them.
Currently ReactivePlusPlus is still under development but it has a lot of implemented operators for now. List of implemented features can be found in [API Reference](https://victimsnino.github.io/ReactivePlusPlus/v2/docs/html/topics.html) with very detailed documentation for each of them.
Main advantages of ReactivePlusPlus are that it is written in Modern C++ with Performance and Usage in mind. v2 is written to follow the [**"zero-overhead principle"**](https://en.cppreference.com/w/cpp/language/Zero-overhead_principle). As a result, it is fast, readable, easy to use, and well-documented. This is proven by [continuous benchmarking results of v2 and comparison with RxCpp](https://victimsnino.github.io/ReactivePlusPlus/v2/benchmark).
Expand All @@ -80,12 +80,12 @@ If you are going to know more details about developing for RPP check [HACKING](H
## Documentation:
Check detailed [User Guide/Tutorial](https://victimsnino.github.io/ReactivePlusPlus/v2/docs/html/index.html) (to learn more details about ReactivePlusPlus or reactive programming paradigm itself) and extensive [API Reference of RPP](https://victimsnino.github.io/ReactivePlusPlus/v2/docs/html/group__rpp.html) (to know how to apply ReactivePlusPlus properly).
Check detailed [User Guide/Tutorial](https://victimsnino.github.io/ReactivePlusPlus/v2/docs/html/index.html) (to learn more details about ReactivePlusPlus or reactive programming paradigm itself) and extensive [API Reference of RPP](https://victimsnino.github.io/ReactivePlusPlus/v2/docs/html/topics.html) (to know how to apply ReactivePlusPlus properly).
## Useful links
- [User Guide](https://victimsnino.github.io/ReactivePlusPlus/v2/docs/html/index.html)
- [API Reference](https://victimsnino.github.io/ReactivePlusPlus/v2/docs/html/group__rpp.html)
- [API Reference](https://victimsnino.github.io/ReactivePlusPlus/v2/docs/html/topics.html)
- [Examples](https://github.com/victimsnino/ReactivePlusPlus/tree/v2/src/examples)
- [reactivex.io](https://reactivex.io) describes everything related to reactive programming.
- [rxmarbles](https://rxmarbles.com/) interactive diagrams of observables/operators
Expand Down
2 changes: 1 addition & 1 deletion docs/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -270,7 +270,7 @@ rpp::source::create<int>([](const auto& observer)
A **Scheduler** is responsible for controlling the type of multithreading behavior (or lack thereof) used in the observable. For example, a **scheduler** can utilize a new thread, a thread pool, or a raw queue to manage its processing.


Check the [API Reference](https://victimsnino.github.io/ReactivePlusPlus/v2/docs/html/group__rpp.html) for more details about schedulers.
Check the [API Reference](https://victimsnino.github.io/ReactivePlusPlus/v2/docs/html/group__schedulers.html) for more details about schedulers.

See <https://reactivex.io/documentation/scheduler.html> for more details about schedulers.

Expand Down
2 changes: 1 addition & 1 deletion src/rpp/rpp/operators.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
* }
* @endcode
*
* Check the [API Reference](https://victimsnino.github.io/ReactivePlusPlus/v2/docs/html/group__rpp.html) for more details about operators.
* Check the [API Reference](https://victimsnino.github.io/ReactivePlusPlus/v2/docs/html/group__operators.html) for more details about operators.
*
* @see https://reactivex.io/documentation/operators.html
* @ingroup rpp
Expand Down

1 comment on commit 16fe752

@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
Subscribe empty callbacks to empty observable 301.06 ns 2.16 ns 2.17 ns 1.00
Subscribe empty callbacks to empty observable via pipe operator 303.97 ns 2.16 ns 2.16 ns 1.00

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 698.32 ns 0.31 ns 0.31 ns 1.00
from array of 1 - create + subscribe + current_thread 1032.31 ns 3.71 ns 3.71 ns 1.00
concat_as_source of just(1 immediate) create + subscribe 2229.56 ns 144.18 ns 142.99 ns 1.01
defer from array of 1 - defer + create + subscribe + immediate 729.89 ns 0.31 ns 0.31 ns 1.00
interval - interval + take(3) + subscribe + immediate 2160.69 ns 59.59 ns 59.19 ns 1.01
interval - interval + take(3) + subscribe + current_thread 3243.53 ns 32.40 ns 32.43 ns 1.00
from array of 1 - create + as_blocking + subscribe + new_thread 26899.22 ns 27714.29 ns 27668.33 ns 1.00
from array of 1000 - create + as_blocking + subscribe + new_thread 36959.11 ns 50450.63 ns 48485.96 ns 1.04
concat_as_source of just(1 immediate) and just(1,2 immediate)create + subscribe 3458.10 ns 215.76 ns 216.05 ns 1.00

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 1128.04 ns 0.31 ns 0.31 ns 1.00
immediate_just+filter(true)+subscribe 850.38 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+skip(1)+subscribe 970.34 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,1,2)+distinct_until_changed()+subscribe 1406.84 ns 0.31 ns 0.31 ns 1.01
immediate_just(1,2)+first()+subscribe 1228.48 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+last()+subscribe 906.97 ns 0.31 ns 0.31 ns 1.01
immediate_just+take_last(1)+subscribe 1098.70 ns 19.02 ns 18.52 ns 1.03
immediate_just(1,2,3)+element_at(1)+subscribe 821.12 ns 0.31 ns 0.31 ns 1.00

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 277.13 ns 5.31 ns 2.16 ns 2.46
current_thread scheduler create worker + schedule 584.60 ns 10.32 ns 5.86 ns 1.76
current_thread scheduler create worker + schedule + recursive schedule 1180.76 ns 63.33 ns 55.65 ns 1.14

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 877.73 ns 0.32 ns 0.31 ns 1.03
immediate_just+scan(10, std::plus)+subscribe 1526.78 ns 0.31 ns 0.31 ns 1.00
immediate_just+flat_map(immediate_just(v*2))+subscribe 2335.41 ns 252.76 ns 192.38 ns 1.31
immediate_just+buffer(2)+subscribe 2995.79 ns 13.90 ns 14.20 ns 0.98
immediate_just+window(2)+subscribe + subscsribe inner 2409.32 ns 1692.57 ns 1361.87 ns 1.24

Conditional Operators

name rxcpp rpp prev rpp ratio
immediate_just+take_while(false)+subscribe 952.44 ns - - 0.00
immediate_just+take_while(true)+subscribe 868.84 ns 0.32 ns 0.31 ns 1.05

Utility Operators

name rxcpp rpp prev rpp ratio
immediate_just(1)+subscribe_on(immediate)+subscribe 2149.50 ns 0.71 ns 0.31 ns 2.30

Combining Operators

name rxcpp rpp prev rpp ratio
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 3525.87 ns 301.54 ns 236.24 ns 1.28
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 6295.26 ns 199.66 ns 193.90 ns 1.03
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 335.78 ns 179.16 ns 1.87
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 5538.68 ns 1540.45 ns 1295.05 ns 1.19
immediate_just(1) + zip(immediate_just(2)) + subscribe 2157.85 ns 240.04 ns 240.55 ns 1.00

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 36.46 ns 14.64 ns 14.63 ns 1.00
subscribe 100 observers to publish_subject 252034.00 ns 25168.62 ns 15717.68 ns 1.60
100 on_next to 100 observers to publish_subject 27075.39 ns 18569.77 ns 17102.51 ns 1.09

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 1429.35 ns 12.66 ns 12.65 ns 1.00
basic sample with immediate scheduler 1420.51 ns 5.55 ns 5.55 ns 1.00

Aggregating Operators

name rxcpp rpp prev rpp ratio
immediate_just+reduce(10, std::plus)+subscribe 921.81 ns 0.31 ns 0.31 ns 1.00

Error Handling Operators

name rxcpp rpp prev rpp ratio
create(on_next(1), on_error())+on_error_resume_next(immediate_just(2)))+subscribe 3446.03 ns 965.13 ns 945.12 ns 1.02
create(on_error())+retry(1)+subscribe 580.34 ns 122.00 ns 121.19 ns 1.01

ci-macos

General

name rxcpp rpp prev rpp ratio
Subscribe empty callbacks to empty observable 2332.11 ns 7.47 ns 4.07 ns 1.84
Subscribe empty callbacks to empty observable via pipe operator 6335.61 ns 15.00 ns 4.95 ns 3.03

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 13863.80 ns 0.85 ns 0.23 ns 3.64
from array of 1 - create + subscribe + current_thread 3711.86 ns 206.48 ns 33.19 ns 6.22
concat_as_source of just(1 immediate) create + subscribe 7636.01 ns 622.39 ns 424.09 ns 1.47
defer from array of 1 - defer + create + subscribe + immediate 3619.11 ns 0.41 ns 0.23 ns 1.76
interval - interval + take(3) + subscribe + immediate 8558.72 ns 149.45 ns 113.99 ns 1.31
interval - interval + take(3) + subscribe + current_thread 8225.05 ns 130.42 ns 94.93 ns 1.37
from array of 1 - create + as_blocking + subscribe + new_thread 1684622.00 ns 3226289.00 ns 85401.17 ns 37.78
from array of 1000 - create + as_blocking + subscribe + new_thread 1094258.00 ns 1284963.00 ns 90987.27 ns 14.12
concat_as_source of just(1 immediate) and just(1,2 immediate)create + subscribe 11699.66 ns 825.61 ns 586.80 ns 1.41

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 6737.94 ns 0.34 ns 0.23 ns 1.45
immediate_just+filter(true)+subscribe 10654.78 ns 1.30 ns 0.23 ns 5.56
immediate_just(1,2)+skip(1)+subscribe 6800.24 ns 0.38 ns 0.23 ns 1.64
immediate_just(1,1,2)+distinct_until_changed()+subscribe 16361.31 ns 4.20 ns 0.47 ns 8.98
immediate_just(1,2)+first()+subscribe 8724.43 ns 0.85 ns 0.23 ns 3.63
immediate_just(1,2)+last()+subscribe 15532.74 ns 1.27 ns 0.23 ns 5.44
immediate_just+take_last(1)+subscribe 15227.79 ns 1.33 ns 0.23 ns 5.68
immediate_just(1,2,3)+element_at(1)+subscribe 2786.79 ns 1.31 ns 0.23 ns 5.61

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 1046.55 ns 5.44 ns 4.17 ns 1.31
current_thread scheduler create worker + schedule 1653.60 ns 51.23 ns 36.44 ns 1.41
current_thread scheduler create worker + schedule + recursive schedule 2531.75 ns 266.40 ns 204.14 ns 1.30

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 2749.62 ns 5.78 ns 4.22 ns 1.37
immediate_just+scan(10, std::plus)+subscribe 2342.70 ns 0.60 ns 0.47 ns 1.29
immediate_just+flat_map(immediate_just(v*2))+subscribe 5465.20 ns 522.72 ns 511.30 ns 1.02
immediate_just+buffer(2)+subscribe 3512.48 ns 68.00 ns 65.49 ns 1.04
immediate_just+window(2)+subscribe + subscsribe inner 10732.16 ns 3206.55 ns 2385.11 ns 1.34

Conditional Operators

name rxcpp rpp prev rpp ratio
immediate_just+take_while(false)+subscribe 2825.71 ns - - 0.00
immediate_just+take_while(true)+subscribe 3164.90 ns 0.31 ns 0.27 ns 1.14

Utility Operators

name rxcpp rpp prev rpp ratio
immediate_just(1)+subscribe_on(immediate)+subscribe 6950.94 ns 6.87 ns 5.13 ns 1.34

Combining Operators

name rxcpp rpp prev rpp ratio
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 35988.34 ns 689.77 ns 594.58 ns 1.16
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 17812.67 ns 1515.69 ns 511.42 ns 2.96
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 1794.92 ns 581.95 ns 3.08
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 77532.77 ns 5748.71 ns 1910.85 ns 3.01
immediate_just(1) + zip(immediate_just(2)) + subscribe 19162.54 ns 4657.14 ns 1071.97 ns 4.34

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 109.31 ns 84.78 ns 48.58 ns 1.75
subscribe 100 observers to publish_subject 481118.00 ns 59110.00 ns 40808.25 ns 1.45
100 on_next to 100 observers to publish_subject 299897.00 ns 50365.86 ns 18910.95 ns 2.66

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 9398.16 ns 281.20 ns 67.27 ns 4.18
basic sample with immediate scheduler 26109.06 ns 56.23 ns 18.73 ns 3.00

Aggregating Operators

name rxcpp rpp prev rpp ratio
immediate_just+reduce(10, std::plus)+subscribe 3112.59 ns 0.32 ns 0.23 ns 1.35

Error Handling Operators

name rxcpp rpp prev rpp ratio
create(on_next(1), on_error())+on_error_resume_next(immediate_just(2)))+subscribe 8950.19 ns 4974.96 ns 3875.22 ns 1.28
create(on_error())+retry(1)+subscribe 2661.97 ns 519.21 ns 362.21 ns 1.43

ci-ubuntu-clang

General

name rxcpp rpp prev rpp ratio
Subscribe empty callbacks to empty observable 265.85 ns 1.54 ns 0.88 ns 1.76
Subscribe empty callbacks to empty observable via pipe operator 269.97 ns 1.54 ns 0.88 ns 1.76

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 563.48 ns 0.31 ns 0.36 ns 0.86
from array of 1 - create + subscribe + current_thread 803.36 ns 4.01 ns 4.02 ns 1.00
concat_as_source of just(1 immediate) create + subscribe 2330.12 ns 187.18 ns 185.68 ns 1.01
defer from array of 1 - defer + create + subscribe + immediate 770.32 ns 0.31 ns 0.31 ns 1.00
interval - interval + take(3) + subscribe + immediate 2234.25 ns 58.30 ns 58.26 ns 1.00
interval - interval + take(3) + subscribe + current_thread 3145.54 ns 30.88 ns 30.88 ns 1.00
from array of 1 - create + as_blocking + subscribe + new_thread 31077.35 ns 28417.28 ns 28060.17 ns 1.01
from array of 1000 - create + as_blocking + subscribe + new_thread 41125.54 ns 35287.29 ns 33336.68 ns 1.06
concat_as_source of just(1 immediate) and just(1,2 immediate)create + subscribe 3670.51 ns 307.41 ns 310.11 ns 0.99

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 1134.00 ns 0.31 ns 0.31 ns 1.00
immediate_just+filter(true)+subscribe 841.30 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+skip(1)+subscribe 1086.89 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,1,2)+distinct_until_changed()+subscribe 868.45 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+first()+subscribe 1372.55 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+last()+subscribe 1001.72 ns 0.31 ns 0.31 ns 1.00
immediate_just+take_last(1)+subscribe 1205.78 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2,3)+element_at(1)+subscribe 863.91 ns 0.31 ns 0.31 ns 1.00

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 279.41 ns 1.54 ns 0.88 ns 1.76
current_thread scheduler create worker + schedule 389.30 ns 4.59 ns 4.32 ns 1.06
current_thread scheduler create worker + schedule + recursive schedule 849.52 ns 55.55 ns 56.05 ns 0.99

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 837.33 ns 0.31 ns 0.31 ns 1.00
immediate_just+scan(10, std::plus)+subscribe 959.96 ns 0.31 ns 0.31 ns 1.00
immediate_just+flat_map(immediate_just(v*2))+subscribe 2247.42 ns 228.46 ns 231.17 ns 0.99
immediate_just+buffer(2)+subscribe 1512.33 ns 13.58 ns 13.58 ns 1.00
immediate_just+window(2)+subscribe + subscsribe inner 2439.02 ns 932.76 ns 921.75 ns 1.01

Conditional Operators

name rxcpp rpp prev rpp ratio
immediate_just+take_while(false)+subscribe 832.80 ns - - 0.00
immediate_just+take_while(true)+subscribe 858.30 ns 0.31 ns 0.31 ns 1.01

Utility Operators

name rxcpp rpp prev rpp ratio
immediate_just(1)+subscribe_on(immediate)+subscribe 1970.77 ns 0.31 ns 0.32 ns 0.96

Combining Operators

name rxcpp rpp prev rpp ratio
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 3266.12 ns 290.63 ns 293.24 ns 0.99
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 3657.56 ns 216.09 ns 218.24 ns 0.99
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 198.44 ns 199.13 ns 1.00
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 3342.85 ns 841.94 ns 841.87 ns 1.00
immediate_just(1) + zip(immediate_just(2)) + subscribe 2223.24 ns 198.22 ns 197.05 ns 1.01

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 54.07 ns 18.25 ns 18.30 ns 1.00
subscribe 100 observers to publish_subject 211496.40 ns 16040.67 ns 15944.19 ns 1.01
100 on_next to 100 observers to publish_subject 45778.24 ns 20793.16 ns 20721.73 ns 1.00

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 1330.05 ns 11.42 ns 11.42 ns 1.00
basic sample with immediate scheduler 1300.09 ns 6.17 ns 6.17 ns 1.00

Aggregating Operators

name rxcpp rpp prev rpp ratio
immediate_just+reduce(10, std::plus)+subscribe 995.53 ns 0.31 ns 0.31 ns 1.00

Error Handling Operators

name rxcpp rpp prev rpp ratio
create(on_next(1), on_error())+on_error_resume_next(immediate_just(2)))+subscribe 2207.97 ns 1004.24 ns 1010.16 ns 0.99
create(on_error())+retry(1)+subscribe 650.15 ns 162.55 ns 157.62 ns 1.03

ci-windows

General

name rxcpp rpp prev rpp ratio
Subscribe empty callbacks to empty observable 882.99 ns 5.32 ns 4.02 ns 1.32
Subscribe empty callbacks to empty observable via pipe operator 845.01 ns 5.21 ns 4.01 ns 1.30

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 1546.65 ns 10.29 ns 9.63 ns 1.07
from array of 1 - create + subscribe + current_thread 1501.04 ns 19.39 ns 17.92 ns 1.08
concat_as_source of just(1 immediate) create + subscribe 4074.19 ns 235.61 ns 231.51 ns 1.02
defer from array of 1 - defer + create + subscribe + immediate 1195.11 ns 9.57 ns 9.42 ns 1.02
interval - interval + take(3) + subscribe + immediate 3523.10 ns 149.93 ns 145.38 ns 1.03
interval - interval + take(3) + subscribe + current_thread 4148.16 ns 71.19 ns 64.76 ns 1.10
from array of 1 - create + as_blocking + subscribe + new_thread 135900.00 ns 125233.33 ns 122100.00 ns 1.03
from array of 1000 - create + as_blocking + subscribe + new_thread 143885.71 ns 152742.86 ns 137987.50 ns 1.11
concat_as_source of just(1 immediate) and just(1,2 immediate)create + subscribe 5691.44 ns 306.46 ns 308.25 ns 0.99

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 1796.08 ns 24.99 ns 25.30 ns 0.99
immediate_just+filter(true)+subscribe 1308.73 ns 24.05 ns 24.35 ns 0.99
immediate_just(1,2)+skip(1)+subscribe 1712.61 ns 23.45 ns 24.06 ns 0.97
immediate_just(1,1,2)+distinct_until_changed()+subscribe 1881.97 ns 26.23 ns 28.99 ns 0.90
immediate_just(1,2)+first()+subscribe 2044.68 ns 23.74 ns 22.82 ns 1.04
immediate_just(1,2)+last()+subscribe 1775.10 ns 24.67 ns 24.06 ns 1.03
immediate_just+take_last(1)+subscribe 2001.04 ns 70.26 ns 77.89 ns 0.90
immediate_just(1,2,3)+element_at(1)+subscribe 1327.34 ns 26.54 ns 27.49 ns 0.97

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 476.62 ns 6.42 ns 6.17 ns 1.04
current_thread scheduler create worker + schedule 1091.07 ns 18.11 ns 13.92 ns 1.30
current_thread scheduler create worker + schedule + recursive schedule 1350.06 ns 108.63 ns 103.54 ns 1.05

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 1290.20 ns 24.37 ns 24.35 ns 1.00
immediate_just+scan(10, std::plus)+subscribe 1429.28 ns 26.53 ns 26.82 ns 0.99
immediate_just+flat_map(immediate_just(v*2))+subscribe 3445.93 ns 273.06 ns 264.76 ns 1.03
immediate_just+buffer(2)+subscribe 2305.00 ns 69.87 ns 68.84 ns 1.01
immediate_just+window(2)+subscribe + subscsribe inner 4052.21 ns 1318.21 ns 1299.67 ns 1.01

Conditional Operators

name rxcpp rpp prev rpp ratio
immediate_just+take_while(false)+subscribe 1308.87 ns 23.12 ns 23.12 ns 1.00
immediate_just+take_while(true)+subscribe 1304.48 ns 24.06 ns 24.35 ns 0.99

Utility Operators

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

Combining Operators

name rxcpp rpp prev rpp ratio
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 5050.00 ns 313.84 ns 305.79 ns 1.03
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 5399.08 ns 267.19 ns 259.20 ns 1.03
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 337.38 ns 303.28 ns 1.11
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 5239.04 ns 934.57 ns 938.92 ns 1.00
immediate_just(1) + zip(immediate_just(2)) + subscribe 3525.44 ns 563.32 ns 571.07 ns 0.99

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 36.45 ns 20.04 ns 20.14 ns 1.00
subscribe 100 observers to publish_subject 256025.00 ns 28373.81 ns 27870.73 ns 1.02
100 on_next to 100 observers to publish_subject 54920.00 ns 32651.61 ns 32674.19 ns 1.00

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 1851.45 ns 102.06 ns 102.19 ns 1.00
basic sample with immediate scheduler 2227.68 ns 72.36 ns 73.85 ns 0.98

Aggregating Operators

name rxcpp rpp prev rpp ratio
immediate_just+reduce(10, std::plus)+subscribe 1455.52 ns 24.66 ns 24.97 ns 0.99

Error Handling Operators

name rxcpp rpp prev rpp ratio
create(on_next(1), on_error())+on_error_resume_next(immediate_just(2)))+subscribe 2142.83 ns 248.54 ns 242.48 ns 1.02
create(on_error())+retry(1)+subscribe 1446.90 ns 190.31 ns 189.74 ns 1.00

Please sign in to comment.