Commit Graph

29 Commits

Author SHA1 Message Date
Levy A.
5acd7a5ea8 side by side comparison with sqlite 2025-01-31 03:11:07 -03:00
Pekka Enberg
7967cc5efc core: Kill Rows wrapper struct
It's just an useless wrapper, kill it.
2025-01-26 16:27:19 +02:00
Jorge Hermo
15f7928551 chore: enable all features in clippy ci and fix more clippy lints 2025-01-15 23:23:12 +01:00
Jussi Saurio
f0b3bac435 add new more complex benchmark entry for preparing statement 2025-01-05 13:51:56 +02:00
Pekka Enberg
f2ecebc357 Rename RowResult to StepResult
The name "row result" is confusing because it really *is* a result from
a step() call. The only difference is how a row is represented as we
return from VDBE or from a statement.

Therefore, rename RowResult to StepResult.
2024-12-27 10:20:41 +02:00
Pere Diaz Bou
93e3b49f08 bench 2024-12-25 00:25:23 +01:00
Pekka Enberg
e93ac38e55 Add statement interruption support
This adds an interrupt() method to Statement that allows apps to
interrupt a running statement. Please note that this is different from
`sqlite3_interrupt()` which interrupts all ongoing operations in a
database. Although we want to support that too, per statement interrupt
is much more useful to apps.
2024-12-19 12:30:32 +02:00
jussisaurio
b6e88ca883 cargo clippy --fix --allow-dirty && cargo fmt 2024-09-15 09:35:39 +03:00
Pekka Enberg
31308f3699 core: Switch SQLite to use locking_mode EXCLUSIVE
Let's switch the SQLite benchmarks to use similar file locking protocol
as we do. Improves SQLite's performance by 2x, but Limbo is still
faster.

Before:

rusqlite/Prepare statement: 'SELECT * FROM users LIMIT 1'
                        time:   [2.1027 µs 2.1239 µs 2.1563 µs]
                        thrpt:  [463.75 Kelem/s 470.83 Kelem/s 475.57 Kelem/s]

After:

rusqlite/Execute prepared statement: 'SELECT * FROM users LIMIT 1'
                        time:   [940.07 ns 944.16 ns 949.39 ns]
                        thrpt:  [1.0533 Melem/s 1.0591 Melem/s 1.0638 Melem/s]
2024-08-03 21:13:50 +03:00
Brayan Jules
78568a53e3 fix format issues 2024-07-24 21:09:36 -04:00
Brayan Jules
529770bf32 bench: fix db lock on benchmark code by splitting the scopes between limbo and rusqlite. 2024-07-24 20:48:17 -04:00
Joan Martinez
dd34a4c045 bench: fix compilation 2024-07-22 11:42:25 +02:00
jussisaurio
40aa081ec2 Conditionally disable rusqlite benchmark 2024-07-17 11:52:17 +03:00
Pekka Enberg
7fa8f5c62e Add benchmarks for prepare() 2024-07-16 08:44:49 +03:00
Raminder Singh
e4a9c5ce6e fix clippy warnings 2024-07-14 16:50:54 +05:30
Pekka Enberg
1d4850df37 Fix invalid database path 2024-06-29 17:36:36 +03:00
Pekka Enberg
cc101b1b00 Use larger and more realistic database for testing 2024-06-29 10:03:11 +03:00
Pere Diaz Bou
377073e158 core: I/O write path 2024-06-19 21:26:40 +03:00
Pekka Enberg
ba1ed2ec09 Run I/O loop in benchmarks
Fixes #50
2024-06-08 08:43:15 +03:00
Pekka Enberg
7232683dfe core: Fix benchmark 2024-05-08 11:13:29 -03:00
Pekka Enberg
9098744a37 Rename to Limbo 2023-09-30 15:40:35 +03:00
Pekka Enberg
29a6c6b877 Fix benchmark compilation 2023-09-09 10:24:08 +03:00
Pekka Enberg
4a5c71ab7a I/O interface refactoring 2023-09-09 10:22:26 +03:00
Pekka Enberg
49c19b55ab Unify sync I/O 2023-09-08 20:27:32 +03:00
Pekka Enberg
9b268dcc6f Compare performance to rusqlite 2023-09-02 21:22:38 +03:00
Pekka Enberg
9d2e7c89d7 Page cache 2023-09-02 19:32:49 +03:00
Pekka Enberg
0aca6a9caf Improve micro-benchmarks 2023-09-02 19:24:24 +03:00
Pekka Enberg
d33b70e3a8 Fix benchmark group name 2023-09-02 14:00:13 +03:00
Pekka Enberg
37baae3ed7 Benchmark 2023-09-02 13:43:07 +03:00