Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add last operator #384

Merged
merged 4 commits into from
Jul 7, 2023
Merged

Add last operator #384

merged 4 commits into from
Jul 7, 2023

Conversation

victimsnino
Copy link
Owner

No description provided.

@github-actions
Copy link
Contributor

github-actions bot commented Jul 7, 2023

BENCHMARK RESULTS (AUTOGENERATED)

ci-ubuntu-gcc

General

name rxcpp rpp prev rpp ratio
Subscribe empty callbacks to empty observable 864.06 ns 1.21 ns 1.27 ns 0.95
Subscribe empty callbacks to empty observable via pipe operator 851.41 ns 1.20 ns 1.17 ns 1.03

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 2195.95 ns 0.40 ns 0.79 ns 0.51
from array of 1 - create + subscribe + current_thread 3180.01 ns 6.46 ns 7.41 ns 0.87
concat_as_source of just(1 immediate) create + subscribe 6679.12 ns 0.40 ns 0.40 ns 1.00

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 875.60 ns 0.80 ns 0.77 ns 1.04
current_thread scheduler create worker + schedule 1079.00 ns 7.64 ns 7.64 ns 1.00
current_thread scheduler create worker + schedule + recursive schedule 2393.71 ns 98.48 ns 93.24 ns 1.06

Combining Operators

name rxcpp rpp prev rpp ratio
create(create(1), create(1)) + merge() + subscribe 5339.40 ns 254.56 ns 237.47 ns 1.07
create(1) + merge_with(create(2)) + subscribe 8434.64 ns 251.86 ns 257.28 ns 0.98

Conditional Operators

name rxcpp rpp prev rpp ratio
create+take_while(false)+subscribe 1073.15 ns - - 0.00
create+take_while(true)+subscribe 1025.65 ns 0.40 ns 0.39 ns 1.02

Transforming Operators

name rxcpp rpp prev rpp ratio
create+map(v*2)+subscribe 1029.09 ns 0.40 ns 0.37 ns 1.07
create+scan(10, std::plus)+subscribe 1214.02 ns 0.40 ns 0.39 ns 1.04
create+flat_map(just(v*2))+subscribe 3919.82 ns 195.32 ns 186.52 ns 1.05

Filtering Operators

name rxcpp rpp prev rpp ratio
create+take(1)+subscribe 1735.97 ns 0.40 ns 0.37 ns 1.08
create+filter(true)+subscribe 1033.29 ns 0.40 ns 0.40 ns 1.00
create(1,2)+first()+subscribe 2118.06 ns 0.40 ns 0.38 ns 1.06
create(1,2)+last()+subscribe 1111.62 ns 0.40 ns - 0.00
create(1,2)+skip(1)+subscribe 1481.87 ns 0.40 ns 0.40 ns 0.99
create(1,1,2)+distinct_until_changed()+subscribe 1043.25 ns 0.40 ns 0.40 ns 1.00

Utility Operators

name rxcpp rpp prev rpp ratio
create(1)+subscribe_on(immediate)+subscribe 3758.58 ns 0.40 ns 0.40 ns 1.02

ci-macos

General

name rxcpp rpp prev rpp ratio
Subscribe empty callbacks to empty observable 1076.48 ns 0.56 ns 1.01 ns 0.56
Subscribe empty callbacks to empty observable via pipe operator 1067.89 ns 0.56 ns 0.57 ns 0.98

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 2257.36 ns 0.45 ns 0.58 ns 0.77
from array of 1 - create + subscribe + current_thread 2903.43 ns 8.33 ns 13.15 ns 0.63
concat_as_source of just(1 immediate) create + subscribe 6717.03 ns 0.28 ns 0.28 ns 1.00

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 1004.32 ns 0.57 ns 0.98 ns 0.58
current_thread scheduler create worker + schedule 1357.94 ns 8.72 ns 12.47 ns 0.70
current_thread scheduler create worker + schedule + recursive schedule 2293.63 ns 156.80 ns 155.88 ns 1.01

Combining Operators

name rxcpp rpp prev rpp ratio
create(create(1), create(1)) + merge() + subscribe 4077.28 ns 396.98 ns 531.48 ns 0.75
create(1) + merge_with(create(2)) + subscribe 6838.02 ns 376.12 ns 547.78 ns 0.69

Conditional Operators

name rxcpp rpp prev rpp ratio
create+take_while(false)+subscribe 1189.58 ns 3.34 ns 4.00 ns 0.84
create+take_while(true)+subscribe 1186.88 ns 3.94 ns 4.05 ns 0.97

Transforming Operators

name rxcpp rpp prev rpp ratio
create+map(v*2)+subscribe 1136.60 ns 3.06 ns 4.30 ns 0.71
create+scan(10, std::plus)+subscribe 1375.60 ns 5.65 ns 5.61 ns 1.01
create+flat_map(just(v*2))+subscribe 3251.69 ns 318.45 ns 501.97 ns 0.63

Filtering Operators

name rxcpp rpp prev rpp ratio
create+take(1)+subscribe 2001.84 ns 4.18 ns 6.12 ns 0.68
create+filter(true)+subscribe 1149.86 ns 3.62 ns 4.31 ns 0.84
create(1,2)+first()+subscribe 2387.91 ns 5.95 ns 5.89 ns 1.01
create(1,2)+last()+subscribe 1465.33 ns 9.17 ns - 0.00
create(1,2)+skip(1)+subscribe 1832.85 ns 6.14 ns 7.64 ns 0.80
create(1,1,2)+distinct_until_changed()+subscribe 1165.68 ns 9.19 ns 12.78 ns 0.72

Utility Operators

name rxcpp rpp prev rpp ratio
create(1)+subscribe_on(immediate)+subscribe 3585.27 ns 0.28 ns 0.43 ns 0.65

ci-ubuntu-clang

General

name rxcpp rpp prev rpp ratio
Subscribe empty callbacks to empty observable 360.02 ns 0.71 ns 0.80 ns 0.88
Subscribe empty callbacks to empty observable via pipe operator 395.70 ns 0.72 ns 0.60 ns 1.20

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 815.98 ns 0.37 ns 0.41 ns 0.91
from array of 1 - create + subscribe + current_thread 1085.13 ns 5.02 ns 4.35 ns 1.16
concat_as_source of just(1 immediate) create + subscribe 2609.04 ns 0.38 ns 0.40 ns 0.94

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 295.23 ns 0.72 ns 0.60 ns 1.19
current_thread scheduler create worker + schedule 424.76 ns 4.66 ns 4.04 ns 1.15
current_thread scheduler create worker + schedule + recursive schedule 899.24 ns 80.60 ns 63.57 ns 1.27

Combining Operators

name rxcpp rpp prev rpp ratio
create(create(1), create(1)) + merge() + subscribe 2327.88 ns 130.61 ns 106.32 ns 1.23
create(1) + merge_with(create(2)) + subscribe 3594.32 ns 121.46 ns 105.33 ns 1.15

Conditional Operators

name rxcpp rpp prev rpp ratio
create+take_while(false)+subscribe 425.49 ns - - 0.00
create+take_while(true)+subscribe 404.41 ns 0.39 ns 0.40 ns 0.97

Transforming Operators

name rxcpp rpp prev rpp ratio
create+map(v*2)+subscribe 426.86 ns 0.39 ns 0.40 ns 0.97
create+scan(10, std::plus)+subscribe 516.39 ns 0.75 ns 0.80 ns 0.94
create+flat_map(just(v*2))+subscribe 1814.79 ns 99.92 ns 85.76 ns 1.17

Filtering Operators

name rxcpp rpp prev rpp ratio
create+take(1)+subscribe 721.55 ns 0.37 ns 0.40 ns 0.93
create+filter(true)+subscribe 375.18 ns 0.39 ns 0.40 ns 0.96
create(1,2)+first()+subscribe 843.50 ns 0.37 ns 0.40 ns 0.91
create(1,2)+last()+subscribe 463.33 ns 0.33 ns - 0.00
create(1,2)+skip(1)+subscribe 637.47 ns 0.39 ns 0.40 ns 0.98
create(1,1,2)+distinct_until_changed()+subscribe 439.38 ns 0.77 ns 0.40 ns 1.92

Utility Operators

name rxcpp rpp prev rpp ratio
create(1)+subscribe_on(immediate)+subscribe 1971.92 ns 0.39 ns 0.40 ns 0.96

ci-windows

General

name rxcpp rpp prev rpp ratio
Subscribe empty callbacks to empty observable 1186.36 ns 1.67 ns 2.07 ns 0.81
Subscribe empty callbacks to empty observable via pipe operator 1830.43 ns 1.67 ns 2.04 ns 0.82

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 2636.69 ns 8.02 ns 9.89 ns 0.81
from array of 1 - create + subscribe + current_thread 3425.67 ns 27.01 ns 28.61 ns 0.94
concat_as_source of just(1 immediate) create + subscribe 8788.00 ns 13.32 ns 12.88 ns 1.03

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 1149.95 ns 4.34 ns 4.80 ns 0.91
current_thread scheduler create worker + schedule 1429.53 ns 11.03 ns 12.92 ns 0.85
current_thread scheduler create worker + schedule + recursive schedule 2443.52 ns 139.45 ns 131.09 ns 1.06

Combining Operators

name rxcpp rpp prev rpp ratio
create(create(1), create(1)) + merge() + subscribe 5086.97 ns 370.58 ns 407.73 ns 0.91
create(1) + merge_with(create(2)) + subscribe 7946.67 ns 365.35 ns 380.51 ns 0.96

Conditional Operators

name rxcpp rpp prev rpp ratio
create+take_while(false)+subscribe 1466.15 ns 5.79 ns 5.41 ns 1.07
create+take_while(true)+subscribe 1361.25 ns 5.69 ns 7.70 ns 0.74

Transforming Operators

name rxcpp rpp prev rpp ratio
create+map(v*2)+subscribe 1364.86 ns 6.68 ns 7.43 ns 0.90
create+scan(10, std::plus)+subscribe 1559.35 ns 9.32 ns 9.52 ns 0.98
create+flat_map(just(v*2))+subscribe 3980.83 ns 310.38 ns 297.42 ns 1.04

Filtering Operators

name rxcpp rpp prev rpp ratio
create+take(1)+subscribe 2432.15 ns 8.14 ns 9.32 ns 0.87
create+filter(true)+subscribe 1359.88 ns 5.68 ns 6.59 ns 0.86
create(1,2)+first()+subscribe 3348.15 ns 10.72 ns 11.60 ns 0.92
create(1,2)+last()+subscribe 1740.23 ns 13.16 ns - 0.00
create(1,2)+skip(1)+subscribe 2053.68 ns 8.38 ns 10.27 ns 0.82
create(1,1,2)+distinct_until_changed()+subscribe 1407.89 ns 13.37 ns 15.63 ns 0.85

Utility Operators

name rxcpp rpp prev rpp ratio
create(1)+subscribe_on(immediate)+subscribe 5016.85 ns 13.47 ns 12.84 ns 1.05

@codecov
Copy link

codecov bot commented Jul 7, 2023

Codecov Report

Merging #384 (71fbf8f) into v2 (0ccdda9) will increase coverage by 0.01%.
The diff coverage is 100.00%.

❗ Current head 71fbf8f differs from pull request most recent head c103824. Consider uploading reports for the commit c103824 to get more accurate results

@@            Coverage Diff             @@
##               v2     #384      +/-   ##
==========================================
+ Coverage   98.52%   98.53%   +0.01%     
==========================================
  Files          41       42       +1     
  Lines         814      821       +7     
==========================================
+ Hits          802      809       +7     
  Misses         12       12              
Impacted Files Coverage Δ
src/rpp/rpp/observers/observer.hpp 98.66% <ø> (ø)
src/rpp/rpp/observers/dynamic_observer.hpp 100.00% <100.00%> (ø)
src/rpp/rpp/operators/last.hpp 100.00% <100.00%> (ø)

📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more

@sonarcloud
Copy link

sonarcloud bot commented Jul 7, 2023

Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 0 Code Smells

95.0% 95.0% Coverage
0.0% 0.0% Duplication

@victimsnino victimsnino merged commit a52f904 into v2 Jul 7, 2023
16 checks passed
@victimsnino victimsnino deleted the last branch July 7, 2023 20:15
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.

None yet

1 participant