mirror of
https://github.com/aljazceru/turso.git
synced 2025-12-31 15:04:19 +01:00
Merge 'Enable Nyrkiö on PRs and clickbench' from Henrik Ingo
- Rename push_only.yml workflow to rust_perf.yml - Move the 'bench' task from rust.yml to rust_perf.yml - More Nyrkio configuration options exposed: Team support (everyone in gh/tursodatabase can access Nyrkiö) Public results Alerting options: Comment on PR, if change detected, don't fail task - Add Nyrkio also to analyse results from the clickbench task Closes #959
This commit is contained in:
222
.github/data/limbo-cargo-output.txt
vendored
Normal file
222
.github/data/limbo-cargo-output.txt
vendored
Normal file
@@ -0,0 +1,222 @@
|
||||
Benchmarking limbo/Prepare statement: 'SELECT 1'
|
||||
Benchmarking limbo/Prepare statement: 'SELECT 1': Warming up for 3.0000 s
|
||||
Benchmarking limbo/Prepare statement: 'SELECT 1': Collecting 100 samples in estimated 5.0062 s (2.4M iterations)
|
||||
Benchmarking limbo/Prepare statement: 'SELECT 1': Analyzing
|
||||
limbo/Prepare statement: 'SELECT 1'
|
||||
time: [2.0631 µs 2.0688 µs 2.0763 µs]
|
||||
thrpt: [481.63 Kelem/s 483.37 Kelem/s 484.70 Kelem/s]
|
||||
Found 13 outliers among 100 measurements (13.00%)
|
||||
1 (1.00%) low severe
|
||||
5 (5.00%) high mild
|
||||
7 (7.00%) high severe
|
||||
Benchmarking limbo/Prepare statement: 'SELECT * FROM users LIMIT 1'
|
||||
Benchmarking limbo/Prepare statement: 'SELECT * FROM users LIMIT 1': Warming up for 3.0000 s
|
||||
Benchmarking limbo/Prepare statement: 'SELECT * FROM users LIMIT 1': Collecting 100 samples in estimated 5.0159 s (1.3M iterations)
|
||||
Benchmarking limbo/Prepare statement: 'SELECT * FROM users LIMIT 1': Analyzing
|
||||
limbo/Prepare statement: 'SELECT * FROM users LIMIT 1'
|
||||
time: [3.9747 µs 3.9842 µs 3.9937 µs]
|
||||
thrpt: [250.39 Kelem/s 250.99 Kelem/s 251.59 Kelem/s]
|
||||
Found 17 outliers among 100 measurements (17.00%)
|
||||
5 (5.00%) low severe
|
||||
3 (3.00%) low mild
|
||||
3 (3.00%) high mild
|
||||
6 (6.00%) high severe
|
||||
Benchmarking limbo/Prepare statement: 'SELECT first_name, count(1) FROM users GROUP BY first_name HAVING count(1)...
|
||||
Benchmarking limbo/Prepare statement: 'SELECT first_name, count(1) FROM users GROUP BY first_name HAVING count(1)...: Warming up for 3.0000 s
|
||||
Benchmarking limbo/Prepare statement: 'SELECT first_name, count(1) FROM users GROUP BY first_name HAVING count(1)...: Collecting 100 samples in estimated 5.0099 s (500k iterations)
|
||||
Benchmarking limbo/Prepare statement: 'SELECT first_name, count(1) FROM users GROUP BY first_name HAVING count(1)...: Analyzing
|
||||
limbo/Prepare statement: 'SELECT first_name, count(1) FROM users GROUP BY first_name HAVING count(1)...
|
||||
time: [10.220 µs 10.280 µs 10.358 µs]
|
||||
thrpt: [96.544 Kelem/s 97.281 Kelem/s 97.846 Kelem/s]
|
||||
Found 13 outliers among 100 measurements (13.00%)
|
||||
1 (1.00%) low severe
|
||||
2 (2.00%) high mild
|
||||
10 (10.00%) high severe
|
||||
Benchmarking limbo/Execute prepared statement: 'SELECT 1'
|
||||
Benchmarking limbo/Execute prepared statement: 'SELECT 1': Warming up for 3.0000 s
|
||||
Benchmarking limbo/Execute prepared statement: 'SELECT 1': Collecting 100 samples in estimated 5.0006 s (27M iterations)
|
||||
Benchmarking limbo/Execute prepared statement: 'SELECT 1': Analyzing
|
||||
limbo/Execute prepared statement: 'SELECT 1'
|
||||
time: [181.95 ns 182.33 ns 182.70 ns]
|
||||
thrpt: [5.4736 Melem/s 5.4844 Melem/s 5.4960 Melem/s]
|
||||
Found 18 outliers among 100 measurements (18.00%)
|
||||
6 (6.00%) low severe
|
||||
3 (3.00%) low mild
|
||||
6 (6.00%) high mild
|
||||
3 (3.00%) high severe
|
||||
Benchmarking limbo/Execute prepared statement: 'SELECT * FROM users LIMIT 1'
|
||||
Benchmarking limbo/Execute prepared statement: 'SELECT * FROM users LIMIT 1': Warming up for 3.0000 s
|
||||
Benchmarking limbo/Execute prepared statement: 'SELECT * FROM users LIMIT 1': Collecting 100 samples in estimated 5.0008 s (4.0M iterations)
|
||||
Benchmarking limbo/Execute prepared statement: 'SELECT * FROM users LIMIT 1': Analyzing
|
||||
limbo/Execute prepared statement: 'SELECT * FROM users LIMIT 1'
|
||||
time: [1.2549 µs 1.2572 µs 1.2594 µs]
|
||||
thrpt: [794.03 Kelem/s 795.44 Kelem/s 796.89 Kelem/s]
|
||||
Found 15 outliers among 100 measurements (15.00%)
|
||||
6 (6.00%) low severe
|
||||
3 (3.00%) high mild
|
||||
6 (6.00%) high severe
|
||||
Benchmarking limbo/Execute prepared statement: 'SELECT * FROM users LIMIT 100'
|
||||
Benchmarking limbo/Execute prepared statement: 'SELECT * FROM users LIMIT 100': Warming up for 3.0000 s
|
||||
Benchmarking limbo/Execute prepared statement: 'SELECT * FROM users LIMIT 100': Collecting 100 samples in estimated 5.0047 s (4.0M iterations)
|
||||
Benchmarking limbo/Execute prepared statement: 'SELECT * FROM users LIMIT 100': Analyzing
|
||||
limbo/Execute prepared statement: 'SELECT * FROM users LIMIT 100'
|
||||
time: [1.2503 µs 1.2528 µs 1.2560 µs]
|
||||
thrpt: [796.20 Kelem/s 798.23 Kelem/s 799.84 Kelem/s]
|
||||
Found 14 outliers among 100 measurements (14.00%)
|
||||
2 (2.00%) low severe
|
||||
1 (1.00%) low mild
|
||||
5 (5.00%) high mild
|
||||
6 (6.00%) high severe
|
||||
|
||||
Benchmarking rusqlite/Prepare statement: 'SELECT 1'
|
||||
Benchmarking rusqlite/Prepare statement: 'SELECT 1': Warming up for 3.0000 s
|
||||
Benchmarking rusqlite/Prepare statement: 'SELECT 1': Collecting 100 samples in estimated 5.0010 s (6.5M iterations)
|
||||
Benchmarking rusqlite/Prepare statement: 'SELECT 1': Analyzing
|
||||
rusqlite/Prepare statement: 'SELECT 1'
|
||||
time: [768.58 ns 770.50 ns 772.43 ns]
|
||||
thrpt: [1.2946 Melem/s 1.2979 Melem/s 1.3011 Melem/s]
|
||||
Found 16 outliers among 100 measurements (16.00%)
|
||||
5 (5.00%) low severe
|
||||
2 (2.00%) low mild
|
||||
1 (1.00%) high mild
|
||||
8 (8.00%) high severe
|
||||
Benchmarking rusqlite/Prepare statement: 'SELECT * FROM users LIMIT 1'
|
||||
Benchmarking rusqlite/Prepare statement: 'SELECT * FROM users LIMIT 1': Warming up for 3.0000 s
|
||||
Benchmarking rusqlite/Prepare statement: 'SELECT * FROM users LIMIT 1': Collecting 100 samples in estimated 5.0083 s (1.6M iterations)
|
||||
Benchmarking rusqlite/Prepare statement: 'SELECT * FROM users LIMIT 1': Analyzing
|
||||
rusqlite/Prepare statement: 'SELECT * FROM users LIMIT 1'
|
||||
time: [3.2006 µs 3.2038 µs 3.2084 µs]
|
||||
thrpt: [311.68 Kelem/s 312.13 Kelem/s 312.45 Kelem/s]
|
||||
Found 11 outliers among 100 measurements (11.00%)
|
||||
5 (5.00%) low severe
|
||||
1 (1.00%) low mild
|
||||
2 (2.00%) high mild
|
||||
3 (3.00%) high severe
|
||||
Benchmarking rusqlite/Execute prepared statement: 'SELECT 1'
|
||||
Benchmarking rusqlite/Execute prepared statement: 'SELECT 1': Warming up for 3.0000 s
|
||||
Benchmarking rusqlite/Execute prepared statement: 'SELECT 1': Collecting 100 samples in estimated 5.0002 s (82M iterations)
|
||||
Benchmarking rusqlite/Execute prepared statement: 'SELECT 1': Analyzing
|
||||
rusqlite/Execute prepared statement: 'SELECT 1'
|
||||
time: [60.613 ns 60.788 ns 61.098 ns]
|
||||
thrpt: [16.367 Melem/s 16.451 Melem/s 16.498 Melem/s]
|
||||
Found 8 outliers among 100 measurements (8.00%)
|
||||
1 (1.00%) low mild
|
||||
1 (1.00%) high mild
|
||||
6 (6.00%) high severe
|
||||
Benchmarking rusqlite/Execute prepared statement: 'SELECT * FROM users LIMIT 1'
|
||||
Benchmarking rusqlite/Execute prepared statement: 'SELECT * FROM users LIMIT 1': Warming up for 3.0000 s
|
||||
Benchmarking rusqlite/Execute prepared statement: 'SELECT * FROM users LIMIT 1': Collecting 100 samples in estimated 5.0014 s (4.3M iterations)
|
||||
Benchmarking rusqlite/Execute prepared statement: 'SELECT * FROM users LIMIT 1': Analyzing
|
||||
rusqlite/Execute prepared statement: 'SELECT * FROM users LIMIT 1'
|
||||
time: [1.1686 µs 1.1702 µs 1.1716 µs]
|
||||
thrpt: [853.52 Kelem/s 854.55 Kelem/s 855.74 Kelem/s]
|
||||
Found 13 outliers among 100 measurements (13.00%)
|
||||
2 (2.00%) low severe
|
||||
1 (1.00%) low mild
|
||||
6 (6.00%) high mild
|
||||
4 (4.00%) high severe
|
||||
Benchmarking rusqlite/Execute prepared statement: 'SELECT * FROM users LIMIT 100'
|
||||
Benchmarking rusqlite/Execute prepared statement: 'SELECT * FROM users LIMIT 100': Warming up for 3.0000 s
|
||||
Benchmarking rusqlite/Execute prepared statement: 'SELECT * FROM users LIMIT 100': Collecting 100 samples in estimated 5.0016 s (4.3M iterations)
|
||||
Benchmarking rusqlite/Execute prepared statement: 'SELECT * FROM users LIMIT 100': Analyzing
|
||||
rusqlite/Execute prepared statement: 'SELECT * FROM users LIMIT 100'
|
||||
time: [1.1643 µs 1.1710 µs 1.1789 µs]
|
||||
thrpt: [848.26 Kelem/s 853.98 Kelem/s 858.85 Kelem/s]
|
||||
Found 17 outliers among 100 measurements (17.00%)
|
||||
5 (5.00%) low severe
|
||||
3 (3.00%) low mild
|
||||
4 (4.00%) high mild
|
||||
5 (5.00%) high severe
|
||||
|
||||
Running unittests src/lib.rs (target/release/deps/limbo_ext-8b70654a7fccf221)
|
||||
|
||||
running 0 tests
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running unittests src/lib.rs (target/release/deps/limbo_libsql-66ab9a0ee1a27f4c)
|
||||
|
||||
running 1 test
|
||||
test params::tests::test_serialize_array ... ignored
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running unittests src/lib.rs (target/release/deps/limbo_macros-669ce5abb31e687e)
|
||||
Running unittests main.rs (target/release/deps/limbo_sim-d28081335520ff9c)
|
||||
|
||||
running 0 tests
|
||||
Running unittests src/lib.rs (target/release/deps/limbo_sqlite3-1d7f53c447b1fc8a)
|
||||
Running unittests src/lib.rs (target/release/deps/limbo_uuid-c0d9c3b2e9e30eee)
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
|
||||
running 0 tests
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
|
||||
running 0 tests
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
|
||||
running 0 tests
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running unittests src/lib.rs (target/release/deps/_limbo-9562557e55b9bbed)
|
||||
|
||||
running 0 tests
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running unittests src/lib.rs (target/release/deps/sqlite3_parser-475bbf4de217f28a)
|
||||
|
||||
running 38 tests
|
||||
test lexer::sql::test::alter_add_column_primary_key ... ignored
|
||||
test lexer::sql::test::alter_add_column_unique ... ignored
|
||||
test lexer::sql::test::alter_rename_same ... ignored
|
||||
test lexer::sql::test::cast_without_typename ... ignored
|
||||
test lexer::sql::test::column_specified_more_than_once ... ignored
|
||||
test lexer::sql::test::count_named_placeholders ... ignored
|
||||
test lexer::sql::test::count_numbered_placeholders ... ignored
|
||||
test lexer::sql::test::count_placeholders ... ignored
|
||||
test lexer::sql::test::count_unused_placeholders ... ignored
|
||||
test lexer::sql::test::create_strict_table_generated_column ... ignored
|
||||
test lexer::sql::test::create_strict_table_missing_datatype ... ignored
|
||||
test lexer::sql::test::create_strict_table_unknown_datatype ... ignored
|
||||
test lexer::sql::test::create_table_with_only_generated_column ... ignored
|
||||
test lexer::sql::test::create_table_without_column ... ignored
|
||||
test lexer::sql::test::create_table_without_rowid_missing_pk ... ignored
|
||||
test lexer::sql::test::create_temporary_table_with_qualified_name ... ignored
|
||||
test lexer::sql::test::create_view_duplicate_column_name ... ignored
|
||||
Running benches/keyword.rs (target/release/deps/keyword-255a8492c4f11233)
|
||||
test lexer::sql::test::create_view_mismatch_count ... ignored
|
||||
test lexer::sql::test::delete_order_by_without_limit ... ignored
|
||||
test lexer::sql::test::duplicate_column ... ignored
|
||||
test lexer::sql::test::extra_comments_between_statements ... ignored
|
||||
test lexer::sql::test::extra_semicolons_between_statements ... ignored
|
||||
test lexer::sql::test::foreign_key_on_column ... ignored
|
||||
test lexer::sql::test::indexed_by_clause_within_triggers ... ignored
|
||||
test lexer::sql::test::insert_default_values ... ignored
|
||||
test lexer::sql::test::insert_mismatch_count ... ignored
|
||||
test lexer::sql::test::missing_join_clause ... ignored
|
||||
test lexer::sql::test::natural_join_on ... ignored
|
||||
test lexer::sql::test::only_semicolons_no_statements ... ignored
|
||||
test lexer::sql::test::qualified_table_name_within_triggers ... ignored
|
||||
test lexer::sql::test::selects_compound_mismatch_columns_count ... ignored
|
||||
test lexer::sql::test::unknown_table_option ... ignored
|
||||
test lexer::sql::test::update_order_by_without_limit ... ignored
|
||||
test lexer::sql::test::values_mismatch_columns_count ... ignored
|
||||
test lexer::sql::test::vtab_args ... ignored
|
||||
test lexer::sql::tests::fallible_iterator ... ignored
|
||||
test lexer::sql::tests::invalid_number_literal ... ignored
|
||||
test parser::ast::test::test_dequote ... ignored
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 38 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
|
||||
running 0 tests
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
42
.github/workflows/push_only.yml
vendored
42
.github/workflows/push_only.yml
vendored
@@ -1,42 +0,0 @@
|
||||
name: Benchmarks+Nyrkiö
|
||||
|
||||
# Pull request support isn't integrated to the github-action-benchmark so run only post-merge
|
||||
on:
|
||||
push:
|
||||
branches: [ "main", "master", "notmain", "add-nyrkio" ]
|
||||
|
||||
env:
|
||||
CARGO_TERM_COLOR: never
|
||||
|
||||
jobs:
|
||||
bench:
|
||||
runs-on: ubuntu-latest
|
||||
environment: test
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 20
|
||||
# cache: 'npm'
|
||||
# - name: Install dependencies
|
||||
# run: npm install && npm run build
|
||||
|
||||
- name: Bench
|
||||
run: cargo bench 2>&1 | tee output.txt
|
||||
|
||||
- name: Analyze benchmark result with Nyrkiö
|
||||
uses: nyrkio/github-action-benchmark@HEAD
|
||||
with:
|
||||
name: turso
|
||||
tool: criterion
|
||||
output-file-path: output.txt
|
||||
fail-on-alert: true
|
||||
# Nyrkiö configuration
|
||||
nyrkio-enable: true
|
||||
# Get yours from https://nyrkio.com/docs/getting-started
|
||||
nyrkio-token: ${{ secrets.NYRKIO_JWT_TOKEN }}
|
||||
|
||||
# Old way...
|
||||
# Explicitly set this to null. We don't want threshold based alerts today.
|
||||
external-data-json-path: null
|
||||
gh-repository: null
|
||||
13
.github/workflows/rust.yml
vendored
13
.github/workflows/rust.yml
vendored
@@ -64,13 +64,6 @@ jobs:
|
||||
run: curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
|
||||
- run: wasm-pack build --target nodejs bindings/wasm
|
||||
|
||||
bench:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Bench
|
||||
run: cargo bench
|
||||
|
||||
test-limbo:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
@@ -95,9 +88,3 @@ jobs:
|
||||
- name: Test
|
||||
run: SQLITE_EXEC="sqlite3" make test-compat
|
||||
|
||||
clickbench:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Clickbench
|
||||
run: make clickbench
|
||||
|
||||
179
.github/workflows/rust_perf.yml
vendored
Normal file
179
.github/workflows/rust_perf.yml
vendored
Normal file
@@ -0,0 +1,179 @@
|
||||
name: Rust Benchmarks+Nyrkiö
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ "main", "master", "notmain" ]
|
||||
pull_request:
|
||||
branches: [ "main", "notmain", "master" ]
|
||||
|
||||
env:
|
||||
CARGO_TERM_COLOR: never
|
||||
|
||||
jobs:
|
||||
bench:
|
||||
runs-on: ubuntu-latest
|
||||
environment: test
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 20
|
||||
# cache: 'npm'
|
||||
# - name: Install dependencies
|
||||
# run: npm install && npm run build
|
||||
|
||||
# - name: Bench
|
||||
# run: cargo bench 2>&1 | tee output.txt
|
||||
- name: Bench (fake)
|
||||
run: |
|
||||
pwd
|
||||
ls
|
||||
cp .github/data/limbo-cargo-output.txt output.txt
|
||||
|
||||
- name: Analyze benchmark result with Nyrkiö
|
||||
uses: nyrkio/github-action-benchmark@HEAD
|
||||
with:
|
||||
name: turso
|
||||
tool: criterion
|
||||
output-file-path: output.txt
|
||||
|
||||
# What to do if a change is immediately detected by Nyrkiö.
|
||||
# Note that smaller changes are only detected with delay, usually after a change
|
||||
# persisted over 2-7 commits. Go to nyrkiö.com to view those or configure alerts.
|
||||
# Note that Nyrkiö will find all changes, also improvements. This means fail-on-alert
|
||||
# on pull events isn't compatible with this workflow being required to pass branch protection.
|
||||
fail-on-alert: false
|
||||
comment-on-alert: true
|
||||
comment-always: false
|
||||
# Nyrkiö configuration
|
||||
nyrkio-enable: true
|
||||
# Get yours from https://nyrkio.com/docs/getting-started
|
||||
nyrkio-token: ${{ secrets.NYRKIO_JWT_TOKEN }}
|
||||
# You may not want share the NYRKIO_JWT_TOKEN token with pull requests, for example.
|
||||
# In that case this task would unnecessarily fail for random contributors. Don't want that:
|
||||
never-fail: true
|
||||
# Make results and change points public, so that any oss contributor can see them
|
||||
nyrkio-public: true
|
||||
|
||||
nyrkio-api-root: https://nyrkio.com/api/v0
|
||||
# Make results and change points public, so that any oss contributor can see them
|
||||
nyrkio-settings-pvalue: 0.01%
|
||||
nyrkio-settings-threshold: 2%
|
||||
|
||||
# Get yours from https://nyrkio.com/docs/getting-started
|
||||
nyrkio-token: ${{ secrets.NYRKIO_JWT_TOKEN }}
|
||||
nyrkio-settings-pvalue: 0.01%
|
||||
nyrkio-settings-threshold: 1%
|
||||
|
||||
# Old way...
|
||||
# Explicitly set this to null. We don't want threshold based alerts today.
|
||||
external-data-json-path: null
|
||||
gh-repository: null
|
||||
|
||||
clickbench:
|
||||
runs-on: ubuntu-latest
|
||||
environment: test
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 20
|
||||
|
||||
- name: Clickbench
|
||||
run: make clickbench
|
||||
|
||||
- name: Analyze LIMBO result with Nyrkiö
|
||||
uses: nyrkio/github-action-benchmark@HEAD
|
||||
with:
|
||||
name: clickbench/limbo
|
||||
tool: time
|
||||
output-file-path: clickbench-limbo.txt
|
||||
# What to do if a change is immediately detected by Nyrkiö.
|
||||
# Note that smaller changes are only detected with delay, usually after a change
|
||||
# persisted over 2-7 commits. Go to nyrkiö.com to view those or configure alerts.
|
||||
# Note that Nyrkiö will find all changes, also improvements. This means fail-on-alert
|
||||
# on pull events isn't compatible with this workflow being required to pass branch protection.
|
||||
fail-on-alert: false
|
||||
comment-on-alert: true
|
||||
comment-always: false
|
||||
# Nyrkiö configuration
|
||||
nyrkio-enable: true
|
||||
# Get yours from https://nyrkio.com/docs/getting-started
|
||||
nyrkio-token: ${{ secrets.NYRKIO_JWT_TOKEN }}
|
||||
# You may not want share the NYRKIO_JWT_TOKEN token with pull requests, for example.
|
||||
# In that case this task would unnecessarily fail for random contributors. Don't want that:
|
||||
never-fail: true
|
||||
# Make results and change points public, so that any oss contributor can see them
|
||||
nyrkio-public: true
|
||||
# Team support = results are visible and manageable to everyone in the same Github org
|
||||
# nyrkio-org: tursodatabase
|
||||
|
||||
# Old way...
|
||||
# Explicitly set this to null. We don't want threshold based alerts today.
|
||||
external-data-json-path: null
|
||||
gh-repository: null
|
||||
|
||||
clickbench:
|
||||
runs-on: ubuntu-latest
|
||||
environment: test
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 20
|
||||
|
||||
- name: Clickbench
|
||||
run: make clickbench
|
||||
|
||||
- name: Analyze LIMBO result with Nyrkiö
|
||||
uses: nyrkio/github-action-benchmark@HEAD
|
||||
with:
|
||||
name: clickbench/limbo
|
||||
tool: time
|
||||
output-file-path: clickbench-limbo.txt
|
||||
# What to do if a change is immediately detected by Nyrkiö.
|
||||
# Note that smaller changes are only detected with delay, usually after a change
|
||||
# persisted over 2-7 commits. Go to nyrkiö.com to view those or configure alerts.
|
||||
# Note that Nyrkiö will find all changes, also improvements. This means fail-on-alert
|
||||
# on pull events isn't compatible with this workflow being required to pass branch protection.
|
||||
fail-on-alert: false
|
||||
comment-on-alert: true
|
||||
comment-always: false
|
||||
# Nyrkiö configuration
|
||||
nyrkio-enable: true
|
||||
# Get yours from https://nyrkio.com/docs/getting-started
|
||||
nyrkio-token: ${{ secrets.NYRKIO_JWT_TOKEN }}
|
||||
# You may not want share the NYRKIO_JWT_TOKEN token with pull requests, for example.
|
||||
# In that case this task would unnecessarily fail for random contributors. Don't want that:
|
||||
never-fail: true
|
||||
# Make results and change points public, so that any oss contributor can see them
|
||||
nyrkio-public: true
|
||||
|
||||
nyrkio-api-root: https://nyrkio.com/api/v0
|
||||
# Team support = results are visible and manageable to everyone in the same Github org
|
||||
# nyrkio-org: tursodatabase
|
||||
|
||||
# Old way...
|
||||
# Explicitly set this to null. We don't want threshold based alerts today.
|
||||
external-data-json-path: null
|
||||
gh-repository: null
|
||||
|
||||
- name: Analyze SQLITE3 result with Nyrkiö
|
||||
uses: nyrkio/github-action-benchmark@HEAD
|
||||
with:
|
||||
name: clickbench/sqlite3
|
||||
tool: time
|
||||
output-file-path: clickbench-sqlite3.txt
|
||||
fail-on-alert: false
|
||||
comment-on-alert: true
|
||||
comment-always: false
|
||||
nyrkio-enable: true
|
||||
nyrkio-token: ${{ secrets.NYRKIO_JWT_TOKEN }}
|
||||
never-fail: true
|
||||
nyrkio-public: true
|
||||
nyrkio-api-root: https://nyrkio.com/api/v0
|
||||
# nyrkio-org: tursodatabase
|
||||
|
||||
external-data-json-path: null
|
||||
gh-repository: null
|
||||
|
||||
@@ -25,18 +25,23 @@ clear_caches() {
|
||||
# Clear caches once
|
||||
echo "The script might ask you to enter the password for sudo, in order to clear system caches."
|
||||
clear_caches
|
||||
count=1;
|
||||
|
||||
# Run the queries, skipping any that are commented out
|
||||
# Between each invocation to Limbo/Sqlite, purge the caches
|
||||
grep -v '^--' "$CLICKBENCH_DIR/queries.sql" | while read -r query; do
|
||||
echo "$query";
|
||||
|
||||
echo "$count $query"
|
||||
((echo "$count $query") 2>&1) | tee -a clickbench-limbo.txt > /dev/null
|
||||
((echo "$count $query") 2>&1) | tee -a clickbench-sqlite3.txt >/dev/null
|
||||
for _ in $(seq 1 $TRIES); do
|
||||
clear_caches
|
||||
echo "----limbo----"
|
||||
time "$RELEASE_BUILD_DIR/limbo" --quiet "$CLICKBENCH_DIR/mydb" <<< "${query}"
|
||||
((time "$RELEASE_BUILD_DIR/limbo" --quiet "$CLICKBENCH_DIR/mydb" <<< "${query}") 2>&1) | tee -a clickbench-limbo.txt
|
||||
clear_caches
|
||||
echo
|
||||
echo "----sqlite----"
|
||||
time sqlite3 "$CLICKBENCH_DIR/mydb" <<< "${query}"
|
||||
((time sqlite3 "$CLICKBENCH_DIR/mydb" <<< "${query}") 2>&1) | tee -a clickbench-sqlite3.txt
|
||||
done;
|
||||
count=$(($count+1))
|
||||
done;
|
||||
|
||||
Reference in New Issue
Block a user