Skip to content

Commit

Permalink
Speedup cache
Browse files Browse the repository at this point in the history
  • Loading branch information
victimsnino authored Oct 14, 2024
1 parent f9662b4 commit 5c43afd
Showing 1 changed file with 6 additions and 14 deletions.
20 changes: 6 additions & 14 deletions .github/workflows/ci v2.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,20 +36,6 @@ jobs:
with:
fetch-depth: 0

# Work around https://github.com/actions/runner-images/issues/8659
# - name: "Remove GCC 13 from runner image (workaround)"
# if: matrix.config.os == 'ubuntu-latest'
# shell: bash
# run: |
# sudo apt-get update
# sudo apt-get purge -y g++-13 gcc-13 libstdc++-13-dev
# sudo apt-get install -y --allow-downgrades libstdc++-12-dev libstdc++6=12.* libgcc-s1=12.*

- name: Install Qt
uses: jurplel/install-qt-action@v4
with:
cache: true

- name: get conan
uses: turtlebrowser/get-conan@main

Expand All @@ -64,6 +50,12 @@ jobs:
restore-keys: deps-${{ matrix.config.name }}-${{ matrix.build_type.config }}
lookup-only: true

- name: Install Qt
if: steps.check_cache.outputs.cache-hit != 'true' || github.event_name == 'schedule'
uses: jurplel/install-qt-action@v4
with:
cache: true

- name: conan detect profile
if: steps.check_cache.outputs.cache-hit != 'true' || github.event_name == 'schedule'
run: |
Expand Down

1 comment on commit 5c43afd

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

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 780.09 ns 0.31 ns 0.31 ns 1.00
from array of 1 - create + subscribe + current_thread 1088.06 ns 3.71 ns 3.70 ns 1.00
concat_as_source of just(1 immediate) create + subscribe 2242.77 ns 141.53 ns 142.18 ns 1.00
defer from array of 1 - defer + create + subscribe + immediate 771.68 ns 0.31 ns 0.31 ns 1.00
interval - interval + take(3) + subscribe + immediate 2206.45 ns 59.23 ns 59.19 ns 1.00
interval - interval + take(3) + subscribe + current_thread 3105.12 ns 32.44 ns 32.40 ns 1.00
from array of 1 - create + as_blocking + subscribe + new_thread 28537.26 ns 27426.70 ns 28056.54 ns 0.98
from array of 1000 - create + as_blocking + subscribe + new_thread 39368.86 ns 48029.52 ns 51616.85 ns 0.93
concat_as_source of just(1 immediate) and just(1,2 immediate)create + subscribe 3507.76 ns 216.81 ns 214.70 ns 1.01

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 1162.98 ns 0.31 ns 0.31 ns 1.00
immediate_just+filter(true)+subscribe 860.89 ns 0.31 ns 0.31 ns 0.99
immediate_just(1,2)+skip(1)+subscribe 1015.83 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,1,2)+distinct_until_changed()+subscribe 906.55 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+first()+subscribe 1288.14 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+last()+subscribe 944.44 ns 0.31 ns 0.31 ns 1.00
immediate_just+take_last(1)+subscribe 1178.17 ns 18.83 ns 18.53 ns 1.02
immediate_just(1,2,3)+element_at(1)+subscribe 869.52 ns 0.31 ns 0.31 ns 1.00

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 264.62 ns 2.16 ns 2.16 ns 1.00
current_thread scheduler create worker + schedule 368.33 ns 5.87 ns 5.87 ns 1.00
current_thread scheduler create worker + schedule + recursive schedule 810.38 ns 54.10 ns 55.46 ns 0.98

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 868.54 ns 0.31 ns 0.31 ns 1.00
immediate_just+scan(10, std::plus)+subscribe 935.41 ns 0.31 ns 0.31 ns 1.00
immediate_just+flat_map(immediate_just(v*2))+subscribe 2345.37 ns 192.64 ns 195.30 ns 0.99
immediate_just+buffer(2)+subscribe 1542.10 ns 13.41 ns 14.30 ns 0.94
immediate_just+window(2)+subscribe + subscsribe inner 2317.79 ns 1387.12 ns 1368.13 ns 1.01

Conditional Operators

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

Utility Operators

name rxcpp rpp prev rpp ratio
immediate_just(1)+subscribe_on(immediate)+subscribe 2076.85 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 3358.94 ns 237.04 ns 237.31 ns 1.00
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 3471.36 ns 180.17 ns 191.93 ns 0.94
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 174.81 ns 180.20 ns 0.97
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 3582.19 ns 1316.08 ns 1258.96 ns 1.05
immediate_just(1) + zip(immediate_just(2)) + subscribe 2128.57 ns 227.52 ns 237.41 ns 0.96

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 34.47 ns 14.64 ns 14.64 ns 1.00
subscribe 100 observers to publish_subject 196716.67 ns 15936.85 ns 16005.26 ns 1.00
100 on_next to 100 observers to publish_subject 26728.56 ns 17126.42 ns 18816.78 ns 0.91

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 1442.76 ns 12.66 ns 12.66 ns 1.00
basic sample with immediate scheduler 1386.97 ns 5.55 ns 5.55 ns 1.00

Aggregating Operators

name rxcpp rpp prev rpp ratio
immediate_just+reduce(10, std::plus)+subscribe 961.23 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 2102.82 ns 939.01 ns 1005.77 ns 0.93
create(on_error())+retry(1)+subscribe 645.77 ns 121.33 ns 139.21 ns 0.87

ci-macos

General

name rxcpp rpp prev rpp ratio
Subscribe empty callbacks to empty observable 1422.79 ns 5.68 ns 4.34 ns 1.31
Subscribe empty callbacks to empty observable via pipe operator 1206.90 ns 8.25 ns 4.40 ns 1.88

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 2399.76 ns 0.29 ns 0.63 ns 0.46
from array of 1 - create + subscribe + current_thread 3114.54 ns 40.92 ns 210.24 ns 0.19
concat_as_source of just(1 immediate) create + subscribe 6963.71 ns 786.24 ns 434.23 ns 1.81
defer from array of 1 - defer + create + subscribe + immediate 2573.55 ns 0.31 ns 0.24 ns 1.28
interval - interval + take(3) + subscribe + immediate 6373.93 ns 139.38 ns 115.87 ns 1.20
interval - interval + take(3) + subscribe + current_thread 7543.42 ns 140.23 ns 94.23 ns 1.49
from array of 1 - create + as_blocking + subscribe + new_thread 117212.33 ns 114780.33 ns 81092.50 ns 1.42
from array of 1000 - create + as_blocking + subscribe + new_thread 126202.50 ns 126040.78 ns 94724.83 ns 1.33
concat_as_source of just(1 immediate) and just(1,2 immediate)create + subscribe 10773.93 ns 772.44 ns 620.67 ns 1.24

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 3505.14 ns 0.29 ns 0.24 ns 1.19
immediate_just+filter(true)+subscribe 2581.98 ns 0.29 ns 0.23 ns 1.23
immediate_just(1,2)+skip(1)+subscribe 3388.25 ns 0.29 ns 0.23 ns 1.23
immediate_just(1,1,2)+distinct_until_changed()+subscribe 2564.69 ns 0.58 ns 0.48 ns 1.21
immediate_just(1,2)+first()+subscribe 3922.75 ns 0.29 ns 0.23 ns 1.23
immediate_just(1,2)+last()+subscribe 2950.36 ns 0.29 ns 0.23 ns 1.23
immediate_just+take_last(1)+subscribe 3717.37 ns 0.29 ns 0.23 ns 1.23
immediate_just(1,2,3)+element_at(1)+subscribe 2994.01 ns 0.31 ns 0.23 ns 1.32

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 1137.26 ns 5.39 ns 4.25 ns 1.27
current_thread scheduler create worker + schedule 1569.75 ns 44.78 ns 36.36 ns 1.23
current_thread scheduler create worker + schedule + recursive schedule 2479.19 ns 245.31 ns 201.23 ns 1.22

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 2580.51 ns 5.16 ns 4.44 ns 1.16
immediate_just+scan(10, std::plus)+subscribe 2843.11 ns 0.57 ns 0.47 ns 1.22
immediate_just+flat_map(immediate_just(v*2))+subscribe 6458.17 ns 628.18 ns 511.33 ns 1.23
immediate_just+buffer(2)+subscribe 3077.27 ns 80.09 ns 64.94 ns 1.23
immediate_just+window(2)+subscribe + subscsribe inner 6621.33 ns 2923.12 ns 2459.87 ns 1.19

Conditional Operators

name rxcpp rpp prev rpp ratio
immediate_just+take_while(false)+subscribe 2565.13 ns - - 0.00
immediate_just+take_while(true)+subscribe 2576.90 ns 0.29 ns 0.23 ns 1.22

Utility Operators

name rxcpp rpp prev rpp ratio
immediate_just(1)+subscribe_on(immediate)+subscribe 6095.16 ns 6.41 ns 4.90 ns 1.31

Combining Operators

name rxcpp rpp prev rpp ratio
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 9372.00 ns 732.89 ns 596.73 ns 1.23
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 10621.39 ns 631.44 ns 511.09 ns 1.24
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 727.34 ns 579.80 ns 1.25
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 9688.67 ns 2462.28 ns 1916.86 ns 1.28
immediate_just(1) + zip(immediate_just(2)) + subscribe 6249.15 ns 1107.04 ns 927.82 ns 1.19

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 94.17 ns 60.62 ns 49.12 ns 1.23
subscribe 100 observers to publish_subject 425475.33 ns 50372.39 ns 41022.92 ns 1.23
100 on_next to 100 observers to publish_subject 65046.28 ns 23329.30 ns 18796.37 ns 1.24

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 3448.01 ns 83.11 ns 68.87 ns 1.21
basic sample with immediate scheduler 3443.88 ns 23.01 ns 18.72 ns 1.23

Aggregating Operators

name rxcpp rpp prev rpp ratio
immediate_just+reduce(10, std::plus)+subscribe 3818.72 ns 0.29 ns 0.23 ns 1.24

Error Handling Operators

name rxcpp rpp prev rpp ratio
create(on_next(1), on_error())+on_error_resume_next(immediate_just(2)))+subscribe 8247.29 ns 4865.12 ns 3940.35 ns 1.23
create(on_error())+retry(1)+subscribe 2253.33 ns 446.98 ns 363.49 ns 1.23

ci-ubuntu-clang

General

name rxcpp rpp prev rpp ratio
Subscribe empty callbacks to empty observable 264.40 ns 1.55 ns 1.55 ns 1.00
Subscribe empty callbacks to empty observable via pipe operator 268.12 ns 1.55 ns 1.54 ns 1.00

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 557.43 ns 0.31 ns 0.31 ns 1.00
from array of 1 - create + subscribe + current_thread 787.81 ns 4.01 ns 4.02 ns 1.00
concat_as_source of just(1 immediate) create + subscribe 2324.28 ns 186.37 ns 182.40 ns 1.02
defer from array of 1 - defer + create + subscribe + immediate 770.44 ns 0.31 ns 0.31 ns 1.00
interval - interval + take(3) + subscribe + immediate 2226.52 ns 58.31 ns 58.26 ns 1.00
interval - interval + take(3) + subscribe + current_thread 3200.49 ns 30.88 ns 30.91 ns 1.00
from array of 1 - create + as_blocking + subscribe + new_thread 28540.97 ns 32978.20 ns 28960.63 ns 1.14
from array of 1000 - create + as_blocking + subscribe + new_thread 40072.83 ns 37651.41 ns 35947.77 ns 1.05
concat_as_source of just(1 immediate) and just(1,2 immediate)create + subscribe 3683.94 ns 303.27 ns 301.43 ns 1.01

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 1121.92 ns 0.31 ns 0.31 ns 1.00
immediate_just+filter(true)+subscribe 835.48 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+skip(1)+subscribe 1064.82 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,1,2)+distinct_until_changed()+subscribe 873.82 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+first()+subscribe 1393.31 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+last()+subscribe 992.02 ns 0.31 ns 0.31 ns 1.00
immediate_just+take_last(1)+subscribe 1175.43 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2,3)+element_at(1)+subscribe 864.36 ns 0.31 ns 0.31 ns 1.00

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 276.37 ns 1.54 ns 1.55 ns 1.00
current_thread scheduler create worker + schedule 386.14 ns 4.58 ns 4.59 ns 1.00
current_thread scheduler create worker + schedule + recursive schedule 844.42 ns 63.35 ns 55.53 ns 1.14

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 833.97 ns 0.31 ns 0.31 ns 1.00
immediate_just+scan(10, std::plus)+subscribe 950.16 ns 0.31 ns 0.31 ns 1.00
immediate_just+flat_map(immediate_just(v*2))+subscribe 2214.92 ns 228.13 ns 226.87 ns 1.01
immediate_just+buffer(2)+subscribe 1514.29 ns 13.59 ns 13.89 ns 0.98
immediate_just+window(2)+subscribe + subscsribe inner 2433.32 ns 932.57 ns 925.40 ns 1.01

Conditional Operators

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

Utility Operators

name rxcpp rpp prev rpp ratio
immediate_just(1)+subscribe_on(immediate)+subscribe 2001.34 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 3244.98 ns 291.00 ns 293.84 ns 0.99
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 3724.05 ns 214.84 ns 219.72 ns 0.98
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 198.60 ns 201.05 ns 0.99
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 3382.87 ns 840.78 ns 844.19 ns 1.00
immediate_just(1) + zip(immediate_just(2)) + subscribe 2204.55 ns 196.89 ns 200.07 ns 0.98

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 54.06 ns 18.25 ns 18.28 ns 1.00
subscribe 100 observers to publish_subject 211044.40 ns 16110.75 ns 15962.56 ns 1.01
100 on_next to 100 observers to publish_subject 45824.83 ns 20570.95 ns 20602.41 ns 1.00

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 1299.74 ns 11.42 ns 11.42 ns 1.00
basic sample with immediate scheduler 1280.14 ns 6.17 ns 6.17 ns 1.00

Aggregating Operators

name rxcpp rpp prev rpp ratio
immediate_just+reduce(10, std::plus)+subscribe 991.02 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 2179.49 ns 1008.80 ns 1018.68 ns 0.99
create(on_error())+retry(1)+subscribe 644.38 ns 159.66 ns 158.77 ns 1.01

ci-windows

General

name rxcpp rpp prev rpp ratio
Subscribe empty callbacks to empty observable 553.99 ns 4.94 ns 4.94 ns 1.00
Subscribe empty callbacks to empty observable via pipe operator 570.93 ns 4.94 ns 4.94 ns 1.00

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 1157.58 ns 9.64 ns 9.71 ns 0.99
from array of 1 - create + subscribe + current_thread 1489.42 ns 17.69 ns 17.64 ns 1.00
concat_as_source of just(1 immediate) create + subscribe 3851.80 ns 234.01 ns 235.54 ns 0.99
defer from array of 1 - defer + create + subscribe + immediate 1196.60 ns 9.43 ns 9.41 ns 1.00
interval - interval + take(3) + subscribe + immediate 3714.50 ns 144.67 ns 144.48 ns 1.00
interval - interval + take(3) + subscribe + current_thread 3532.06 ns 65.38 ns 65.03 ns 1.01
from array of 1 - create + as_blocking + subscribe + new_thread 116880.00 ns 109530.00 ns 111990.00 ns 0.98
from array of 1000 - create + as_blocking + subscribe + new_thread 125187.50 ns 127975.00 ns 129650.00 ns 0.99
concat_as_source of just(1 immediate) and just(1,2 immediate)create + subscribe 5459.91 ns 308.32 ns 315.44 ns 0.98

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 1856.63 ns 24.99 ns 24.99 ns 1.00
immediate_just+filter(true)+subscribe 1316.56 ns 24.06 ns 24.05 ns 1.00
immediate_just(1,2)+skip(1)+subscribe 1775.84 ns 23.43 ns 23.44 ns 1.00
immediate_just(1,1,2)+distinct_until_changed()+subscribe 1341.33 ns 26.24 ns 26.23 ns 1.00
immediate_just(1,2)+first()+subscribe 2102.74 ns 23.76 ns 23.76 ns 1.00
immediate_just(1,2)+last()+subscribe 1785.69 ns 24.69 ns 24.67 ns 1.00
immediate_just+take_last(1)+subscribe 2070.22 ns 70.04 ns 70.84 ns 0.99
immediate_just(1,2,3)+element_at(1)+subscribe 1345.49 ns 26.53 ns 26.54 ns 1.00

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 477.29 ns 6.17 ns 6.17 ns 1.00
current_thread scheduler create worker + schedule 647.25 ns 14.33 ns 14.25 ns 1.01
current_thread scheduler create worker + schedule + recursive schedule 1085.57 ns 102.94 ns 102.92 ns 1.00

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 1310.09 ns 24.37 ns 24.35 ns 1.00
immediate_just+scan(10, std::plus)+subscribe 1440.41 ns 26.53 ns 26.53 ns 1.00
immediate_just+flat_map(immediate_just(v*2))+subscribe 3575.63 ns 267.27 ns 266.39 ns 1.00
immediate_just+buffer(2)+subscribe 2659.53 ns 68.97 ns 69.35 ns 0.99
immediate_just+window(2)+subscribe + subscsribe inner 4140.41 ns 1329.72 ns 1304.19 ns 1.02

Conditional Operators

name rxcpp rpp prev rpp ratio
immediate_just+take_while(false)+subscribe 1621.08 ns 23.14 ns 23.14 ns 1.00
immediate_just+take_while(true)+subscribe 1331.08 ns 24.06 ns 24.06 ns 1.00

Utility Operators

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

Combining Operators

name rxcpp rpp prev rpp ratio
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 5079.71 ns 303.09 ns 301.10 ns 1.01
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 5573.30 ns 263.17 ns 260.45 ns 1.01
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 307.60 ns 303.27 ns 1.01
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 5362.76 ns 948.18 ns 950.35 ns 1.00
immediate_just(1) + zip(immediate_just(2)) + subscribe 3753.46 ns 571.95 ns 575.92 ns 0.99

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 36.53 ns 20.08 ns 20.05 ns 1.00
subscribe 100 observers to publish_subject 260900.00 ns 28994.29 ns 28494.59 ns 1.02
100 on_next to 100 observers to publish_subject 54995.00 ns 33011.76 ns 32624.24 ns 1.01

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 1865.16 ns 102.29 ns 102.31 ns 1.00
basic sample with immediate scheduler 1877.06 ns 73.56 ns 72.15 ns 1.02

Aggregating Operators

name rxcpp rpp prev rpp ratio
immediate_just+reduce(10, std::plus)+subscribe 1456.27 ns 24.66 ns 24.68 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 2245.18 ns 246.52 ns 255.48 ns 0.96
create(on_error())+retry(1)+subscribe 1501.82 ns 194.11 ns 193.50 ns 1.00

Please sign in to comment.