Skip to content

Commit

Permalink
v2.2.0
Browse files Browse the repository at this point in the history
  • Loading branch information
victimsnino authored Nov 16, 2024
1 parent 9929865 commit 06c51f0
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ include(cmake/prelude.cmake)

project(
ReactivePlusPlus
VERSION 2.1.0
VERSION 2.2.0
DESCRIPTION "ReactivePlusPlus is library for building asynchronous event-driven streams of data with help of sequences of primitive operators in the declarative form"
HOMEPAGE_URL "https://github.com/victimsnino/ReactivePlusPlus"
LANGUAGES CXX
Expand Down

1 comment on commit 06c51f0

@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 303.03 ns 1.85 ns 1.85 ns 1.00
Subscribe empty callbacks to empty observable via pipe operator 308.97 ns 1.85 ns 1.85 ns 1.00

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 685.97 ns 0.31 ns 0.39 ns 0.78
from array of 1 - create + subscribe + current_thread 1024.80 ns 3.42 ns 3.42 ns 1.00
concat_as_source of just(1 immediate) create + subscribe 2225.31 ns 113.40 ns 112.50 ns 1.01
defer from array of 1 - defer + create + subscribe + immediate 723.74 ns 0.31 ns 0.31 ns 1.00
interval - interval + take(3) + subscribe + immediate 2139.91 ns 59.19 ns 59.23 ns 1.00
interval - interval + take(3) + subscribe + current_thread 3003.30 ns 32.44 ns 32.42 ns 1.00
from array of 1 - create + as_blocking + subscribe + new_thread 29378.34 ns 27521.43 ns 28390.81 ns 0.97
from array of 1000 - create + as_blocking + subscribe + new_thread 37395.41 ns 48506.54 ns 53556.14 ns 0.91
concat_as_source of just(1 immediate) and just(1,2 immediate)create + subscribe 3546.46 ns 134.76 ns 134.00 ns 1.01

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 1092.34 ns 0.31 ns 0.31 ns 1.00
immediate_just+filter(true)+subscribe 855.40 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+skip(1)+subscribe 1070.69 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,1,2)+distinct_until_changed()+subscribe 848.25 ns 0.31 ns 0.31 ns 0.99
immediate_just(1,2)+first()+subscribe 1264.26 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+last()+subscribe 938.12 ns 0.31 ns 0.31 ns 1.00
immediate_just+take_last(1)+subscribe 1135.03 ns 18.53 ns 18.22 ns 1.02
immediate_just(1,2,3)+element_at(1)+subscribe 828.61 ns 0.31 ns 0.31 ns 0.99

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 262.64 ns 1.54 ns 1.54 ns 1.00
current_thread scheduler create worker + schedule 400.56 ns 4.94 ns 4.94 ns 1.00
current_thread scheduler create worker + schedule + recursive schedule 812.73 ns 60.98 ns 61.65 ns 0.99

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 830.90 ns 0.31 ns 0.31 ns 1.00
immediate_just+scan(10, std::plus)+subscribe 902.32 ns 0.31 ns 0.31 ns 1.00
immediate_just+flat_map(immediate_just(v*2))+subscribe 2334.08 ns 144.61 ns 149.88 ns 0.96
immediate_just+buffer(2)+subscribe 1589.03 ns 14.20 ns 13.89 ns 1.02
immediate_just+window(2)+subscribe + subscsribe inner 2458.18 ns 1335.11 ns 1351.03 ns 0.99

Conditional Operators

name rxcpp rpp prev rpp ratio
immediate_just+take_while(false)+subscribe 830.01 ns - - 0.00
immediate_just+take_while(true)+subscribe 863.21 ns 0.31 ns 0.31 ns 1.00

Utility Operators

name rxcpp rpp prev rpp ratio
immediate_just(1)+subscribe_on(immediate)+subscribe 1991.97 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 3418.05 ns 155.49 ns 165.73 ns 0.94
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 3741.55 ns 160.18 ns 160.94 ns 1.00
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 133.13 ns 137.38 ns 0.97
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 3529.55 ns 455.38 ns 524.86 ns 0.87
immediate_just(1) + zip(immediate_just(2)) + subscribe 2085.44 ns 216.63 ns 213.43 ns 1.02
immediate_just(immediate_just(1), immediate_just(1)) + concat() + subscribe 3128.31 ns 223.79 ns 228.33 ns 0.98

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 34.52 ns 14.85 ns 14.66 ns 1.01
subscribe 100 observers to publish_subject 200963.40 ns 16200.72 ns 16495.20 ns 0.98
100 on_next to 100 observers to publish_subject 27536.80 ns 17244.61 ns 18661.60 ns 0.92

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 1331.71 ns 13.28 ns 13.27 ns 1.00
basic sample with immediate scheduler 1389.13 ns 5.55 ns 5.55 ns 1.00

Aggregating Operators

name rxcpp rpp prev rpp ratio
immediate_just+reduce(10, std::plus)+subscribe 915.20 ns 0.31 ns 0.33 ns 0.95

Error Handling Operators

name rxcpp rpp prev rpp ratio
create(on_next(1), on_error())+on_error_resume_next(immediate_just(2)))+subscribe 2079.23 ns 1007.35 ns 1000.03 ns 1.01
create(on_error())+retry(1)+subscribe 609.16 ns 109.61 ns 112.93 ns 0.97

ci-macos

General

name rxcpp rpp prev rpp ratio
Subscribe empty callbacks to empty observable 2229.18 ns 2.19 ns 0.72 ns 3.05
Subscribe empty callbacks to empty observable via pipe operator 4864.26 ns 3.21 ns 0.71 ns 4.51

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 8182.23 ns 1.19 ns 0.24 ns 4.99
from array of 1 - create + subscribe + current_thread 17521.27 ns 240.15 ns 33.78 ns 7.11
concat_as_source of just(1 immediate) create + subscribe 5839.82 ns 380.93 ns 316.00 ns 1.21
defer from array of 1 - defer + create + subscribe + immediate 2368.25 ns 0.28 ns 0.23 ns 1.18
interval - interval + take(3) + subscribe + immediate 12093.23 ns 143.68 ns 114.78 ns 1.25
interval - interval + take(3) + subscribe + current_thread 8484.25 ns 184.34 ns 97.97 ns 1.88
from array of 1 - create + as_blocking + subscribe + new_thread 128353.25 ns 136828.33 ns 232793.00 ns 0.59
from array of 1000 - create + as_blocking + subscribe + new_thread 125191.62 ns 128395.89 ns 88081.33 ns 1.46
concat_as_source of just(1 immediate) and just(1,2 immediate)create + subscribe 9419.60 ns 401.24 ns 360.82 ns 1.11

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 2850.17 ns 0.28 ns 0.23 ns 1.21
immediate_just+filter(true)+subscribe 2536.57 ns 0.27 ns 0.23 ns 1.18
immediate_just(1,2)+skip(1)+subscribe 3448.10 ns 0.29 ns 0.24 ns 1.24
immediate_just(1,1,2)+distinct_until_changed()+subscribe 2414.78 ns 0.55 ns 0.46 ns 1.20
immediate_just(1,2)+first()+subscribe 3630.19 ns 0.28 ns 0.23 ns 1.21
immediate_just(1,2)+last()+subscribe 2578.16 ns 0.30 ns 0.23 ns 1.33
immediate_just+take_last(1)+subscribe 3325.51 ns 0.27 ns 0.23 ns 1.20
immediate_just(1,2,3)+element_at(1)+subscribe 2332.68 ns 0.26 ns 0.23 ns 1.12

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 1122.32 ns 1.26 ns 0.91 ns 1.38
current_thread scheduler create worker + schedule 1588.54 ns 45.01 ns 33.18 ns 1.36
current_thread scheduler create worker + schedule + recursive schedule 2658.96 ns 277.62 ns 197.63 ns 1.40

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 2518.14 ns 5.07 ns 4.20 ns 1.21
immediate_just+scan(10, std::plus)+subscribe 2874.78 ns 0.51 ns 0.47 ns 1.10
immediate_just+flat_map(immediate_just(v*2))+subscribe 5974.12 ns 439.91 ns 373.21 ns 1.18
immediate_just+buffer(2)+subscribe 3066.12 ns 77.70 ns 63.65 ns 1.22
immediate_just+window(2)+subscribe + subscsribe inner 6685.26 ns 2990.38 ns 2438.70 ns 1.23

Conditional Operators

name rxcpp rpp prev rpp ratio
immediate_just+take_while(false)+subscribe 2728.51 ns - - 0.00
immediate_just+take_while(true)+subscribe 2459.86 ns 0.27 ns 0.23 ns 1.17

Utility Operators

name rxcpp rpp prev rpp ratio
immediate_just(1)+subscribe_on(immediate)+subscribe 5693.36 ns 5.72 ns 4.78 ns 1.19

Combining Operators

name rxcpp rpp prev rpp ratio
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 9546.53 ns 596.70 ns 400.89 ns 1.49
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 10984.89 ns 537.83 ns 428.16 ns 1.26
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 631.48 ns 451.95 ns 1.40
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 9062.92 ns 1161.62 ns 927.67 ns 1.25
immediate_just(1) + zip(immediate_just(2)) + subscribe 6550.03 ns 1275.03 ns 826.82 ns 1.54
immediate_just(immediate_just(1), immediate_just(1)) + concat() + subscribe 9701.85 ns 816.57 ns 633.26 ns 1.29

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 89.92 ns 66.27 ns 48.79 ns 1.36
subscribe 100 observers to publish_subject 408803.67 ns 48729.14 ns 38817.69 ns 1.26
100 on_next to 100 observers to publish_subject 64827.13 ns 27500.16 ns 22502.71 ns 1.22

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 3306.54 ns 88.94 ns 66.61 ns 1.34
basic sample with immediate scheduler 3201.45 ns 21.80 ns 17.90 ns 1.22

Aggregating Operators

name rxcpp rpp prev rpp ratio
immediate_just+reduce(10, std::plus)+subscribe 3097.58 ns 0.26 ns 0.23 ns 1.12

Error Handling Operators

name rxcpp rpp prev rpp ratio
create(on_next(1), on_error())+on_error_resume_next(immediate_just(2)))+subscribe 11692.50 ns 4911.17 ns 4045.93 ns 1.21
create(on_error())+retry(1)+subscribe 2278.98 ns 351.29 ns 278.54 ns 1.26

ci-ubuntu-clang

General

name rxcpp rpp prev rpp ratio
Subscribe empty callbacks to empty observable 271.96 ns 0.63 ns 0.63 ns 1.00
Subscribe empty callbacks to empty observable via pipe operator 271.23 ns 0.63 ns 0.63 ns 1.00

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 570.51 ns 0.31 ns 0.31 ns 1.00
from array of 1 - create + subscribe + current_thread 797.75 ns 4.01 ns 4.01 ns 1.00
concat_as_source of just(1 immediate) create + subscribe 2346.93 ns 128.30 ns 128.06 ns 1.00
defer from array of 1 - defer + create + subscribe + immediate 779.16 ns 0.31 ns 0.31 ns 1.00
interval - interval + take(3) + subscribe + immediate 2212.89 ns 58.31 ns 58.30 ns 1.00
interval - interval + take(3) + subscribe + current_thread 3135.21 ns 31.11 ns 30.91 ns 1.01
from array of 1 - create + as_blocking + subscribe + new_thread 29957.92 ns 27642.74 ns 27414.80 ns 1.01
from array of 1000 - create + as_blocking + subscribe + new_thread 36480.79 ns 32988.93 ns 38247.25 ns 0.86
concat_as_source of just(1 immediate) and just(1,2 immediate)create + subscribe 3660.07 ns 148.21 ns 148.32 ns 1.00

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 1162.12 ns 0.31 ns 0.31 ns 1.00
immediate_just+filter(true)+subscribe 844.00 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+skip(1)+subscribe 1082.15 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,1,2)+distinct_until_changed()+subscribe 872.77 ns 0.62 ns 0.62 ns 1.00
immediate_just(1,2)+first()+subscribe 1366.42 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+last()+subscribe 1001.22 ns 0.31 ns 0.31 ns 1.00
immediate_just+take_last(1)+subscribe 1192.26 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2,3)+element_at(1)+subscribe 855.71 ns 0.31 ns 0.31 ns 1.00

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 283.31 ns 1.54 ns 1.54 ns 1.00
current_thread scheduler create worker + schedule 395.48 ns 4.01 ns 4.05 ns 0.99
current_thread scheduler create worker + schedule + recursive schedule 843.73 ns 55.81 ns 54.96 ns 1.02

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 834.35 ns 0.31 ns 0.31 ns 1.00
immediate_just+scan(10, std::plus)+subscribe 969.05 ns 0.31 ns 0.31 ns 1.00
immediate_just+flat_map(immediate_just(v*2))+subscribe 2243.87 ns 151.96 ns 140.13 ns 1.08
immediate_just+buffer(2)+subscribe 1530.25 ns 13.59 ns 13.58 ns 1.00
immediate_just+window(2)+subscribe + subscsribe inner 2515.48 ns 917.15 ns 912.85 ns 1.00

Conditional Operators

name rxcpp rpp prev rpp ratio
immediate_just+take_while(false)+subscribe 833.12 ns - - 0.00
immediate_just+take_while(true)+subscribe 900.42 ns 0.31 ns 0.31 ns 1.00

Utility Operators

name rxcpp rpp prev rpp ratio
immediate_just(1)+subscribe_on(immediate)+subscribe 1990.76 ns 0.31 ns 0.31 ns 1.00

Combining Operators

name rxcpp rpp prev rpp ratio
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 3642.01 ns 158.54 ns 157.75 ns 1.01
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 3735.87 ns 140.93 ns 141.15 ns 1.00
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 142.43 ns 143.36 ns 0.99
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 3366.81 ns 377.00 ns 376.60 ns 1.00
immediate_just(1) + zip(immediate_just(2)) + subscribe 2204.32 ns 195.47 ns 203.29 ns 0.96
immediate_just(immediate_just(1), immediate_just(1)) + concat() + subscribe 3289.91 ns 221.34 ns 223.99 ns 0.99

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 52.30 ns 17.49 ns 17.76 ns 0.98
subscribe 100 observers to publish_subject 213316.00 ns 16275.22 ns 16225.97 ns 1.00
100 on_next to 100 observers to publish_subject 41474.86 ns 23638.56 ns 23607.41 ns 1.00

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 1288.49 ns 11.43 ns 11.42 ns 1.00
basic sample with immediate scheduler 1365.11 ns 5.86 ns 5.86 ns 1.00

Aggregating Operators

name rxcpp rpp prev rpp ratio
immediate_just+reduce(10, std::plus)+subscribe 995.51 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 2170.68 ns 1179.24 ns 1193.05 ns 0.99
create(on_error())+retry(1)+subscribe 649.72 ns 140.04 ns 139.93 ns 1.00

ci-windows

General

name rxcpp rpp prev rpp ratio
Subscribe empty callbacks to empty observable 563.72 ns 2.16 ns 1.85 ns 1.17
Subscribe empty callbacks to empty observable via pipe operator 581.93 ns 2.16 ns 1.85 ns 1.17

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 1155.57 ns 5.55 ns 5.24 ns 1.06
from array of 1 - create + subscribe + current_thread 1431.52 ns 15.46 ns 15.75 ns 0.98
concat_as_source of just(1 immediate) create + subscribe 3718.57 ns 169.03 ns 172.95 ns 0.98
defer from array of 1 - defer + create + subscribe + immediate 1212.71 ns 5.55 ns 5.55 ns 1.00
interval - interval + take(3) + subscribe + immediate 2899.03 ns 139.75 ns 140.97 ns 0.99
interval - interval + take(3) + subscribe + current_thread 3408.12 ns 59.79 ns 62.08 ns 0.96
from array of 1 - create + as_blocking + subscribe + new_thread 123585.71 ns 114333.33 ns 114811.11 ns 1.00
from array of 1000 - create + as_blocking + subscribe + new_thread 124377.78 ns 127711.11 ns 132244.44 ns 0.97
concat_as_source of just(1 immediate) and just(1,2 immediate)create + subscribe 5357.67 ns 196.17 ns 216.93 ns 0.90

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 1834.95 ns 19.42 ns 19.73 ns 0.98
immediate_just+filter(true)+subscribe 1341.55 ns 18.51 ns 18.82 ns 0.98
immediate_just(1,2)+skip(1)+subscribe 1718.35 ns 17.90 ns 18.52 ns 0.97
immediate_just(1,1,2)+distinct_until_changed()+subscribe 1363.12 ns 20.88 ns 23.47 ns 0.89
immediate_just(1,2)+first()+subscribe 2377.39 ns 18.21 ns 17.29 ns 1.05
immediate_just(1,2)+last()+subscribe 1752.89 ns 19.14 ns 18.52 ns 1.03
immediate_just+take_last(1)+subscribe 2026.64 ns 64.94 ns 64.54 ns 1.01
immediate_just(1,2,3)+element_at(1)+subscribe 1609.65 ns 22.07 ns 21.92 ns 1.01

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 479.72 ns 4.32 ns 4.32 ns 1.00
current_thread scheduler create worker + schedule 652.00 ns 11.12 ns 11.18 ns 1.00
current_thread scheduler create worker + schedule + recursive schedule 1330.21 ns 99.33 ns 103.92 ns 0.96

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 1323.63 ns 18.82 ns 18.82 ns 1.00
immediate_just+scan(10, std::plus)+subscribe 1433.37 ns 20.96 ns 21.29 ns 0.98
immediate_just+flat_map(immediate_just(v*2))+subscribe 3492.18 ns 185.40 ns 186.13 ns 1.00
immediate_just+buffer(2)+subscribe 2333.94 ns 64.10 ns 63.27 ns 1.01
immediate_just+window(2)+subscribe + subscsribe inner 4076.33 ns 1277.56 ns 1292.44 ns 0.99

Conditional Operators

name rxcpp rpp prev rpp ratio
immediate_just+take_while(false)+subscribe 1328.70 ns 17.58 ns 17.57 ns 1.00
immediate_just+take_while(true)+subscribe 1331.21 ns 18.51 ns 18.81 ns 0.98

Utility Operators

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

Combining Operators

name rxcpp rpp prev rpp ratio
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 5122.79 ns 198.78 ns 226.22 ns 0.88
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 5685.94 ns 185.01 ns 191.89 ns 0.96
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 194.19 ns 187.18 ns 1.04
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 5786.89 ns 452.48 ns 434.44 ns 1.04
immediate_just(1) + zip(immediate_just(2)) + subscribe 3586.56 ns 520.52 ns 522.40 ns 1.00
immediate_just(immediate_just(1), immediate_just(1)) + concat() + subscribe 4912.50 ns 316.50 ns 327.16 ns 0.97

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 36.00 ns 20.35 ns 20.39 ns 1.00
subscribe 100 observers to publish_subject 264825.00 ns 27592.68 ns 29530.56 ns 0.93
100 on_next to 100 observers to publish_subject 55305.00 ns 32596.77 ns 38730.00 ns 0.84

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 1883.02 ns 95.54 ns 95.70 ns 1.00
basic sample with immediate scheduler 1882.99 ns 68.25 ns 68.71 ns 0.99

Aggregating Operators

name rxcpp rpp prev rpp ratio
immediate_just+reduce(10, std::plus)+subscribe 1468.68 ns 19.13 ns 19.44 ns 0.98

Error Handling Operators

name rxcpp rpp prev rpp ratio
create(on_next(1), on_error())+on_error_resume_next(immediate_just(2)))+subscribe 1930.32 ns 356.91 ns 368.08 ns 0.97
create(on_error())+retry(1)+subscribe 1588.92 ns 137.33 ns 138.06 ns 0.99

Please sign in to comment.