Skip to content

Conversation

@araujogui
Copy link
Member

Adds an options config to the sqlite benchmarks to measure the performance impact of different database configurations.

@nodejs-github-bot
Copy link
Collaborator

Review requested:

  • @nodejs/performance

@nodejs-github-bot nodejs-github-bot added benchmark Issues and PRs related to the benchmark subsystem. sqlite Issues and PRs related to the SQLite subsystem. labels Jan 16, 2026
Copy link
Member

@H4ad H4ad left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey, thanks for the PR.

I think it would be better to have another benchmark just to test the impact of these options, to keep the running time low instead of increasing the combinations of a single benchmark and raise the amount of time it takes to run.

@araujogui araujogui requested a review from H4ad January 16, 2026 18:50
@araujogui araujogui force-pushed the sqlite/benchmark-options branch from 023a548 to a4fbd76 Compare January 17, 2026 09:07
@araujogui araujogui requested a review from H4ad January 17, 2026 10:47
Copy link
Member

@H4ad H4ad left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sqlite/sqlite-prepare-select-all-options.js options="none" statement="SELECT * FROM foo LIMIT 1" tableSeedSize=100000 n=100000: 625,354.1693338023
sqlite/sqlite-prepare-select-all-options.js options="readBigInts" statement="SELECT * FROM foo LIMIT 1" tableSeedSize=100000 n=100000: 651,474.6640428221
sqlite/sqlite-prepare-select-all-options.js options="returnArrays" statement="SELECT * FROM foo LIMIT 1" tableSeedSize=100000 n=100000: 1,095,588.8328733796
sqlite/sqlite-prepare-select-all-options.js options="readBigInts|returnArrays" statement="SELECT * FROM foo LIMIT 1" tableSeedSize=100000 n=100000: 1,088,053.1610588299
sqlite/sqlite-prepare-select-all-options.js options="none" statement="SELECT * FROM foo LIMIT 100" tableSeedSize=100000 n=100000: 14,359.617245665962
sqlite/sqlite-prepare-select-all-options.js options="readBigInts" statement="SELECT * FROM foo LIMIT 100" tableSeedSize=100000 n=100000: 13,802.25789196257
sqlite/sqlite-prepare-select-all-options.js options="returnArrays" statement="SELECT * FROM foo LIMIT 100" tableSeedSize=100000 n=100000: 19,317.131041765566
sqlite/sqlite-prepare-select-all-options.js options="readBigInts|returnArrays" statement="SELECT * FROM foo LIMIT 100" tableSeedSize=100000 n=100000: 18,721.247377062915
sqlite/sqlite-prepare-select-get-options.js options="none" statement="SELECT * FROM foo LIMIT 1" tableSeedSize=100000 n=100000: 731,126.4549370758
sqlite/sqlite-prepare-select-get-options.js options="readBigInts" statement="SELECT * FROM foo LIMIT 1" tableSeedSize=100000 n=100000: 632,374.5304429398
sqlite/sqlite-prepare-select-get-options.js options="returnArrays" statement="SELECT * FROM foo LIMIT 1" tableSeedSize=100000 n=100000: 1,154,274.034351657
sqlite/sqlite-prepare-select-get-options.js options="readBigInts|returnArrays" statement="SELECT * FROM foo LIMIT 1" tableSeedSize=100000 n=100000: 1,219,418.389131724

Interesting to see the returnArrays option is the fastest one.

Since it's a benchmark for SQLite, /cc @nodejs/sqlite

@H4ad H4ad added the author ready PRs that have at least one approval, no pending requests for changes, and a CI started. label Jan 19, 2026
@avivkeller avivkeller added the commit-queue Add this label to land a pull request using GitHub Actions. label Jan 19, 2026
@nodejs-github-bot nodejs-github-bot added commit-queue-failed An error occurred while landing this pull request using GitHub Actions. and removed commit-queue Add this label to land a pull request using GitHub Actions. labels Jan 19, 2026
@nodejs-github-bot
Copy link
Collaborator

Commit Queue failed
- Loading data for nodejs/node/pull/61401
✔  Done loading data for nodejs/node/pull/61401
----------------------------------- PR info ------------------------------------
Title      sqlite: create options benchmarks (#61401)
Author     Guilherme Araújo <[email protected]> (@araujogui)
Branch     araujogui:sqlite/benchmark-options -> nodejs:main
Labels     benchmark, author ready, sqlite
Commits    4
 - sqlite: create options benchmarks
 - sqlite: split benchmarks
 - sqlite: lint benchmarks
 - sqlite: unify benchmarks
Committers 1
 - Guilherme Araújo <[email protected]>
PR-URL: https://github.com/nodejs/node/pull/61401
Reviewed-By: Vinícius Lourenço Claro Cardoso <[email protected]>
------------------------------ Generated metadata ------------------------------
PR-URL: https://github.com/nodejs/node/pull/61401
Reviewed-By: Vinícius Lourenço Claro Cardoso <[email protected]>
--------------------------------------------------------------------------------
   ℹ  This PR was created on Fri, 16 Jan 2026 14:34:01 GMT
   ✔  Approvals: 1
   ✔  - Vinícius Lourenço Claro Cardoso (@H4ad): https://github.com/nodejs/node/pull/61401#pullrequestreview-3679730178
   ✘  This PR needs to wait 88 more hours to land (or 0 minutes if there is one more approval)
   ✔  Last GitHub CI successful
   ℹ  Green GitHub CI is sufficient
--------------------------------------------------------------------------------
   ✔  Aborted `git node land` session in /home/runner/work/node/node/.ncu
https://github.com/nodejs/node/actions/runs/21153949636

@H4ad H4ad removed the commit-queue-failed An error occurred while landing this pull request using GitHub Actions. label Jan 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

author ready PRs that have at least one approval, no pending requests for changes, and a CI started. benchmark Issues and PRs related to the benchmark subsystem. sqlite Issues and PRs related to the SQLite subsystem.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants