Skip to content

Instantly share code, notes, and snippets.

@wolfspider
Created November 4, 2024 05:29
Show Gist options
  • Save wolfspider/eda44821e72d9b18d5b839a758755232 to your computer and use it in GitHub Desktop.
Save wolfspider/eda44821e72d9b18d5b839a758755232 to your computer and use it in GitHub Desktop.
Limbo AIO-MIO FreeBSD Perf Results
generic I/O benches:
Running benches/benchmark.rs (target/release/deps/benchmark-ae59633aa8fa8e87)
Gnuplot not found, using plotters backend
Benchmarking limbo/Prepare statement: 'SELECT 1': Collecting 100 samples in estimated 5.0117 s (1.8Mlimbo/Prepare statement: 'SELECT 1'
time: [2.8154 µs 2.8430 µs 2.8732 µs]
thrpt: [348.05 Kelem/s 351.74 Kelem/s 355.19 Kelem/s]
Found 5 outliers among 100 measurements (5.00%)
2 (2.00%) high mild
3 (3.00%) high severe
Benchmarking limbo/Prepare statement: 'SELECT * FROM users LIMIT 1': Collecting 100 samples in estimlimbo/Prepare statement: 'SELECT * FROM users LIMIT 1'
time: [4.3059 µs 4.3401 µs 4.3728 µs]
thrpt: [228.68 Kelem/s 230.41 Kelem/s 232.24 Kelem/s]
Found 6 outliers among 100 measurements (6.00%)
3 (3.00%) high mild
3 (3.00%) high severe
Benchmarking limbo/Execute prepared statement: 'SELECT 1': Collecting 100 samples in estimated 5.000limbo/Execute prepared statement: 'SELECT 1'
time: [102.70 ns 103.48 ns 104.27 ns]
thrpt: [9.5909 Melem/s 9.6642 Melem/s 9.7370 Melem/s]
Found 6 outliers among 100 measurements (6.00%)
1 (1.00%) high mild
5 (5.00%) high severe
Benchmarking limbo/Execute prepared statement: 'SELECT * FROM users LIMIT 1': Warming up for 3.0000 Benchmarking limbo/Execute prepared statement: 'SELECT * FROM users LIMIT 1': Collecting 100 sampleslimbo/Execute prepared statement: 'SELECT * FROM users LIMIT 1'
time: [916.03 ns 922.64 ns 930.00 ns]
thrpt: [1.0753 Melem/s 1.0838 Melem/s 1.0917 Melem/s]
Found 3 outliers among 100 measurements (3.00%)
3 (3.00%) high severe
Benchmarking limbo/Execute prepared statement: 'SELECT * FROM users LIMIT 100': Warming up for 3.000Benchmarking limbo/Execute prepared statement: 'SELECT * FROM users LIMIT 100': Collecting 100 sampllimbo/Execute prepared statement: 'SELECT * FROM users LIMIT 100'
time: [909.90 ns 918.13 ns 927.05 ns]
thrpt: [1.0787 Melem/s 1.0892 Melem/s 1.0990 Melem/s]
Found 5 outliers among 100 measurements (5.00%)
1 (1.00%) high mild
4 (4.00%) high severe
Benchmarking rusqlite/Prepare statement: 'SELECT 1': Collecting 100 samples in estimated 5.0003 s (8rusqlite/Prepare statement: 'SELECT 1'
time: [608.88 ns 613.36 ns 618.06 ns]
thrpt: [1.6180 Melem/s 1.6304 Melem/s 1.6424 Melem/s]
Found 6 outliers among 100 measurements (6.00%)
3 (3.00%) high mild
3 (3.00%) high severe
Benchmarking rusqlite/Prepare statement: 'SELECT * FROM users LIMIT 1': Collecting 100 samples in esrusqlite/Prepare statement: 'SELECT * FROM users LIMIT 1'
time: [3.0305 µs 3.0539 µs 3.0782 µs]
thrpt: [324.86 Kelem/s 327.45 Kelem/s 329.98 Kelem/s]
Found 1 outliers among 100 measurements (1.00%)
1 (1.00%) high severe
Benchmarking rusqlite/Execute prepared statement: 'SELECT 1': Collecting 100 samples in estimated 5.rusqlite/Execute prepared statement: 'SELECT 1'
time: [44.509 ns 44.859 ns 45.229 ns]
thrpt: [22.110 Melem/s 22.292 Melem/s 22.467 Melem/s]
Found 3 outliers among 100 measurements (3.00%)
1 (1.00%) high mild
2 (2.00%) high severe
Benchmarking rusqlite/Execute prepared statement: 'SELECT * FROM users LIMIT 1': Warming up for 3.00Benchmarking rusqlite/Execute prepared statement: 'SELECT * FROM users LIMIT 1': Collecting 100 samprusqlite/Execute prepared statement: 'SELECT * FROM users LIMIT 1'
time: [512.34 ns 516.55 ns 520.85 ns]
thrpt: [1.9199 Melem/s 1.9359 Melem/s 1.9518 Melem/s]
Found 4 outliers among 100 measurements (4.00%)
1 (1.00%) high mild
3 (3.00%) high severe
Benchmarking rusqlite/Execute prepared statement: 'SELECT * FROM users LIMIT 100': Warming up for 3.Benchmarking rusqlite/Execute prepared statement: 'SELECT * FROM users LIMIT 100': Collecting 100 sarusqlite/Execute prepared statement: 'SELECT * FROM users LIMIT 100'
time: [508.60 ns 513.26 ns 518.01 ns]
thrpt: [1.9305 Melem/s 1.9483 Melem/s 1.9662 Melem/s]
Found 3 outliers among 100 measurements (3.00%)
1 (1.00%) high mild
2 (2.00%) high severe
MIO-AIO Benches:
Running benches/benchmark.rs (target/release/deps/benchmark-ed344944d495fe62)
Gnuplot not found, using plotters backend
Benchmarking limbo/Prepare statement: 'SELECT 1': Collecting 100 samples in limbo/Prepare statement: 'SELECT 1'
time: [2.2266 µs 2.2293 µs 2.2318 µs]
thrpt: [448.08 Kelem/s 448.58 Kelem/s 449.12 Kelem/s]
change:
time: [-23.121% -21.467% -20.010%] (p = 0.00 < 0.05)
thrpt: [+25.016% +27.335% +30.074%]
Performance has improved.
Found 5 outliers among 100 measurements (5.00%)
2 (2.00%) high mild
3 (3.00%) high severe
Benchmarking limbo/Prepare statement: 'SELECT * FROM users LIMIT 1': WarmingBenchmarking limbo/Prepare statement: 'SELElimbo/Prepare statement: 'SELECT * FROM users LIMIT 1'
time: [3.4992 µs 3.5018 µs 3.5049 µs]
thrpt: [285.31 Kelem/s 285.57 Kelem/s 285.78 Kelem/s]
change:
time: [-21.379% -20.222% -19.215%] (p = 0.00 < 0.05)
thrpt: [+23.785% +25.347% +27.192%]
Performance has improved.
Found 4 outliers among 100 measurements (4.00%)
4 (4.00%) high severe
Benchmarking limbo/Execute prepared statement: 'SELECT 1': Collecting 100 samples in estimated 5.0001 s (59M iterationslimbo/Execute prepared statement: 'SELECT 1'
time: [83.538 ns 83.587 ns 83.640 ns]
thrpt: [11.956 Melem/s 11.964 Melem/s 11.971 Melem/s]
change:
time: [-22.047% -20.461% -19.101%] (p = 0.00 < 0.05)
thrpt: [+23.611% +25.725% +28.282%]
Performance has improved.
Found 7 outliers among 100 measurements (7.00%)
1 (1.00%) low severe
4 (4.00%) high mild
2 (2.00%) high severe
Benchmarking limbo/Execute prepared statement: 'SELECT * FROM users LIMIT 1': Collecting 100 samples in estimated 5.002limbo/Execute prepared statement: 'SELECT * FROM users LIMIT 1'
time: [777.78 ns 779.01 ns 780.40 ns]
thrpt: [1.2814 Melem/s 1.2837 Melem/s 1.2857 Melem/s]
change:
time: [-17.652% -16.442% -15.429%] (p = 0.00 < 0.05)
thrpt: [+18.243% +19.677% +21.436%]
Performance has improved.
Found 7 outliers among 100 measurements (7.00%)
3 (3.00%) low mild
3 (3.00%) high mild
1 (1.00%) high severe
Benchmarking limbo/Execute prepared statement: 'SELECT * FROM users LIMIT 100': Collecting 100 samples in estimated 5.0limbo/Execute prepared statement: 'SELECT * FROM users LIMIT 100'
time: [799.76 ns 800.17 ns 800.66 ns]
thrpt: [1.2490 Melem/s 1.2497 Melem/s 1.2504 Melem/s]
change:
time: [-14.675% -13.246% -12.041%] (p = 0.00 < 0.05)
thrpt: [+13.689% +15.269% +17.200%]
Performance has improved.
Found 2 outliers among 100 measurements (2.00%)
1 (1.00%) low mild
1 (1.00%) high mild
rusqlite/Prepare statement: 'SELECT 1'
time: [505.55 ns 505.91 ns 506.28 ns]
thrpt: [1.9752 Melem/s 1.9766 Melem/s 1.9781 Melem/s]
change:
time: [-19.200% -18.116% -17.171%] (p = 0.00 < 0.05)
thrpt: [+20.731% +22.124% +23.763%]
Performance has improved.
Found 9 outliers among 100 measurements (9.00%)
2 (2.00%) low mild
3 (3.00%) high mild
4 (4.00%) high severe
Benchmarking rusqlite/Prepare statement: 'SELECT * FROM users LIMIT 1': Collecting 100 samples in estimated 5.0112 s (2rusqlite/Prepare statement: 'SELECT * FROM users LIMIT 1'
time: [2.5109 µs 2.5122 µs 2.5137 µs]
thrpt: [397.81 Kelem/s 398.05 Kelem/s 398.26 Kelem/s]
change:
time: [-19.352% -18.005% -17.017%] (p = 0.00 < 0.05)
thrpt: [+20.507% +21.959% +23.996%]
Performance has improved.
Found 4 outliers among 100 measurements (4.00%)
1 (1.00%) high mild
3 (3.00%) high severe
Benchmarking rusqlite/Execute prepared statement: 'SELECT 1': Collecting 100 samples in estimated 5.0000 s (136M iteratrusqlite/Execute prepared statement: 'SELECT 1'
time: [36.469 ns 36.502 ns 36.549 ns]
thrpt: [27.361 Melem/s 27.396 Melem/s 27.420 Melem/s]
change:
time: [-21.887% -19.848% -18.335%] (p = 0.00 < 0.05)
thrpt: [+22.452% +24.763% +28.020%]
Performance has improved.
Found 8 outliers among 100 measurements (8.00%)
3 (3.00%) low mild
2 (2.00%) high mild
3 (3.00%) high severe
Benchmarking rusqlite/Execute prepared statement: 'SELECT * FROM users LIMIT 1': Collecting 100 samples in estimated 5.rusqlite/Execute prepared statement: 'SELECT * FROM users LIMIT 1'
time: [416.66 ns 416.88 ns 417.15 ns]
thrpt: [2.3972 Melem/s 2.3987 Melem/s 2.4001 Melem/s]
change:
time: [-21.376% -20.151% -19.105%] (p = 0.00 < 0.05)
thrpt: [+23.617% +25.236% +27.187%]
Performance has improved.
Found 3 outliers among 100 measurements (3.00%)
3 (3.00%) high severe
Benchmarking rusqlite/Execute prepared statement: 'SELECT * FROM users LIMIT 100': Collecting 100 samples in estimated rusqlite/Execute prepared statement: 'SELECT * FROM users LIMIT 100'
time: [417.82 ns 418.08 ns 418.34 ns]
thrpt: [2.3904 Melem/s 2.3919 Melem/s 2.3934 Melem/s]
change:
time: [-21.118% -19.814% -18.722%] (p = 0.00 < 0.05)
thrpt: [+23.035% +24.710% +26.771%]
Performance has improved.
Found 4 outliers among 100 measurements (4.00%)
3 (3.00%) high mild
1 (1.00%) high severe
Running unittests main.rs (target/release/deps/limbo_sim-7b31064cd6c7ee06)
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_sqlite3-16f016530b606658)
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-58618736f5094d78)
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
@wolfspider
Copy link
Author

Not bad for a Sunday- we get to improve Limbo on FreeBSD initially with a +20-30% throughput and +20% speed increase. Not much had to change at all either, just sprinkle some Zatarain's on there and bam!

@wolfspider
Copy link
Author

Now how about those tests?:

running 135 tests
test json::tests::test_get_json_blob_valid_jsonb ... ok
test json::tests::test_get_json_blob_invalid_jsonb ... ok
test json::tests::test_get_json_invalid_jsonb ... ok
test json::tests::test_get_json_non_text ... ok
test json::tests::test_get_json_invalid_json5 ... ok
test json::tests::test_get_json_valid_json5_nan ... ok
test json::tests::test_get_json_valid_json5_double_single_quotes ... ok
test json::tests::test_get_json_valid_json5_infinity ... ok
test json::tests::test_get_json_valid_jsonb ... ok
test json::tests::test_get_json_valid_json5 ... ok
test json::tests::test_get_json_valid_json5_negative_infinity ... ok
test schema::tests::test_column_is_rowid_alias_single_integer ... ok
test schema::tests::test_column_is_rowid_alias_single_integer_separate_primary_key_definition ... ok
test schema::tests::test_column_is_rowid_alias_single_integer_separate_primary_key_definition_without_rowid ... ok
test schema::tests::test_column_is_rowid_alias_separate_composite_primary_key_definition ... ok
test schema::tests::test_column_is_rowid_alias_single_text ... ok
test schema::tests::test_column_is_rowid_alias_single_integer_without_rowid ... ok
test schema::tests::test_column_is_rowid_alias_inline_composite_primary_key ... ok
test schema::tests::test_has_rowid_false ... ok
test schema::tests::test_primary_key_separate_single ... ok
test schema::tests::test_sqlite_schema ... ok
test schema::tests::test_primary_key_separate_single_quoted ... ok
test schema::tests::test_primary_key_separate_single_doubly_quoted ... ok
test storage::sqlite3_ondisk::tests::read_varint_test::case_2 ... ok
test storage::sqlite3_ondisk::tests::read_varint_test::case_1 ... ok
test storage::sqlite3_ondisk::tests::read_varint_test::case_3 ... ok
test storage::sqlite3_ondisk::tests::read_varint_test::case_4 ... ok
test storage::sqlite3_ondisk::tests::read_varint_test::case_5 ... ok
test storage::sqlite3_ondisk::tests::read_varint_test::case_6 ... ok
test storage::sqlite3_ondisk::tests::read_varint_test::case_8 ... ok
test storage::sqlite3_ondisk::tests::read_varint_test::case_9 ... ok
test storage::sqlite3_ondisk::tests::test_read_invalid_value::case_1 ... ok
test storage::sqlite3_ondisk::tests::test_read_invalid_serial_type ... ok
test storage::sqlite3_ondisk::tests::read_varint_test::case_7 ... ok
test storage::sqlite3_ondisk::tests::test_read_invalid_value::case_2 ... ok
test storage::sqlite3_ondisk::tests::test_read_invalid_value::case_3 ... ok
test schema::tests::test_has_rowid_true ... ok
test storage::sqlite3_ondisk::tests::test_read_invalid_value::case_5 ... ok
test storage::sqlite3_ondisk::tests::test_read_invalid_value::case_4 ... ok
test storage::sqlite3_ondisk::tests::test_read_invalid_value::case_6 ... ok
test schema::tests::test_primary_key_inline_single ... ok
test storage::sqlite3_ondisk::tests::test_read_invalid_value::case_7 ... ok
test storage::sqlite3_ondisk::tests::test_read_invalid_value::case_8 ... ok
test storage::sqlite3_ondisk::tests::test_read_invalid_value::case_9 ... ok
test storage::sqlite3_ondisk::tests::test_read_invalid_varint ... ok
test storage::sqlite3_ondisk::tests::test_read_serial_type::case_01 ... ok
test storage::sqlite3_ondisk::tests::test_read_serial_type::case_02 ... ok
test storage::sqlite3_ondisk::tests::test_read_serial_type::case_03 ... ok
test storage::sqlite3_ondisk::tests::test_read_serial_type::case_04 ... ok
test storage::sqlite3_ondisk::tests::test_read_serial_type::case_06 ... ok
test storage::sqlite3_ondisk::tests::test_read_serial_type::case_05 ... ok
test storage::sqlite3_ondisk::tests::test_read_serial_type::case_07 ... ok
test storage::sqlite3_ondisk::tests::test_read_serial_type::case_08 ... ok
test storage::sqlite3_ondisk::tests::test_read_serial_type::case_09 ... ok
test storage::sqlite3_ondisk::tests::test_read_serial_type::case_10 ... ok
test schema::tests::test_primary_key_inline_multiple ... ok
test storage::sqlite3_ondisk::tests::test_read_serial_type::case_13 ... ok
test storage::sqlite3_ondisk::tests::test_read_serial_type::case_11 ... ok
test storage::sqlite3_ondisk::tests::test_read_serial_type::case_12 ... ok
test storage::sqlite3_ondisk::tests::test_read_value::case_01 ... ok
test storage::sqlite3_ondisk::tests::test_read_value::case_02 ... ok
test storage::sqlite3_ondisk::tests::test_read_value::case_03 ... ok
test storage::sqlite3_ondisk::tests::test_read_value::case_04 ... ok
test storage::sqlite3_ondisk::tests::test_read_serial_type::case_14 ... ok
test storage::sqlite3_ondisk::tests::test_read_value::case_05 ... ok
test storage::sqlite3_ondisk::tests::test_read_value::case_06 ... ok
test storage::sqlite3_ondisk::tests::test_read_value::case_07 ... ok
test storage::sqlite3_ondisk::tests::test_read_value::case_08 ... ok
test storage::sqlite3_ondisk::tests::test_read_value::case_09 ... ok
test storage::sqlite3_ondisk::tests::test_read_value::case_10 ... ok
test storage::sqlite3_ondisk::tests::test_read_value::case_11 ... ok
test storage::sqlite3_ondisk::tests::test_read_value::case_12 ... ok
test storage::sqlite3_ondisk::tests::test_write_varint::case_01 ... ok
test storage::sqlite3_ondisk::tests::test_write_varint::case_03 ... ok
test storage::sqlite3_ondisk::tests::test_write_varint::case_02 ... ok
test schema::tests::test_primary_key_separate_multiple ... ok
test storage::sqlite3_ondisk::tests::test_write_varint::case_04 ... ok
test storage::sqlite3_ondisk::tests::test_write_varint::case_05 ... ok
test storage::sqlite3_ondisk::tests::test_write_varint::case_06 ... ok
test storage::sqlite3_ondisk::tests::test_write_varint::case_07 ... ok
test vdbe::datetime::tests::test_apply_modifier_date_time_offset ... ignored
test storage::sqlite3_ondisk::tests::test_write_varint::case_08 ... ok
test storage::sqlite3_ondisk::tests::test_write_varint::case_09 ... ok
test storage::sqlite3_ondisk::tests::test_write_varint::case_10 ... ok
test vdbe::datetime::tests::test_apply_modifier_days ... ok
test vdbe::datetime::tests::test_apply_modifier_minutes ... ok
test vdbe::datetime::tests::test_apply_modifier_hours ... ok
test vdbe::datetime::tests::test_apply_modifier_seconds ... ok
test vdbe::datetime::tests::test_apply_modifier_start_of_day ... ok
test vdbe::datetime::tests::test_apply_modifier_start_of_year ... ok
test vdbe::datetime::tests::test_apply_modifier_time_offset ... ok
test vdbe::datetime::tests::test_parse_days ... ok
test vdbe::datetime::tests::test_parse_hours ... ok
test vdbe::datetime::tests::test_parse_date_offset ... ok
test vdbe::datetime::tests::test_parse_date_time_offset ... ok
test vdbe::datetime::tests::test_parse_invalid_modifier ... ok
test vdbe::datetime::tests::test_parse_months ... ok
test vdbe::datetime::tests::test_parse_minutes ... ok
test vdbe::datetime::tests::test_parse_other_modifiers ... ok
test vdbe::datetime::tests::test_parse_seconds ... ok
test vdbe::datetime::tests::test_parse_start_of ... ok
test vdbe::datetime::tests::test_parse_weekday ... ok
test vdbe::datetime::tests::test_parse_time_offset ... ok
test vdbe::datetime::tests::test_parse_years ... ok
test vdbe::tests::test_abs ... ok
test vdbe::tests::test_char ... ok
test vdbe::tests::test_exec_if ... ok
test vdbe::tests::test_exec_instr ... ok
test vdbe::tests::test_exec_randomblob ... ok
test vdbe::tests::test_exec_round ... ok
test vdbe::tests::test_exec_sign ... ok
test vdbe::tests::test_exec_zeroblob ... ok
test vdbe::tests::test_execute_sqlite_version ... ok
test vdbe::tests::test_hex ... ok
test vdbe::tests::test_length ... ok
test vdbe::tests::test_lower_case ... ok
test vdbe::tests::test_ltrim ... ok
test vdbe::tests::test_min_max ... ok
test vdbe::datetime::tests::test_invalid_get_date_from_time_value ... ok
test vdbe::tests::test_get_new_rowid ... ok
test vdbe::datetime::tests::test_invalid_get_time_from_datetime_value ... ok
test vdbe::tests::test_nullif ... ok
test vdbe::tests::test_random ... ok
test vdbe::tests::test_quote ... ok
test vdbe::tests::test_substring ... ok
test vdbe::tests::test_typeof ... ok
test vdbe::tests::test_rtrim ... ok
test vdbe::tests::test_trim ... ok
test vdbe::datetime::tests::test_valid_get_time_from_datetime_value ... ok
test vdbe::tests::test_unhex ... ok
test vdbe::tests::test_unicode ... ok
test vdbe::tests::test_upper_case ... ok
test vdbe::datetime::tests::test_valid_get_date_from_time_value ... ok
test vdbe::tests::test_like_with_cache ... ok
test vdbe::tests::test_like_no_cache ... ok

test result: ok. 134 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.01s

@wolfspider
Copy link
Author

When we compare natively on the same machine with Linux io-uring, it is not only close but FreeBSD beats some of the benchmarks outright:

Linux io-uring:

Running benches/benchmark.rs (target/release/deps/benchmark-f37d17b6b18a8f1d)
Gnuplot not found, using plotters backend
Benchmarking limbo/Prepare statement: 'SELECT 1': Collecting 100 samples in estimated 5.0040 s (2.4Mlimbo/Prepare statement: 'SELECT 1'
                        time:   [2.0786 µs 2.0822 µs 2.0865 µs]
                        thrpt:  [479.28 Kelem/s 480.25 Kelem/s 481.09 Kelem/s]
Found 8 outliers among 100 measurements (8.00%)
  1 (1.00%) low mild
  2 (2.00%) high mild
  5 (5.00%) high severe
Benchmarking limbo/Prepare statement: 'SELECT * FROM users LIMIT 1': Collecting 100 samples in estimlimbo/Prepare statement: 'SELECT * FROM users LIMIT 1'
                        time:   [3.1997 µs 3.2027 µs 3.2062 µs]
                        thrpt:  [311.90 Kelem/s 312.24 Kelem/s 312.53 Kelem/s]
Found 9 outliers among 100 measurements (9.00%)
  2 (2.00%) low mild
  4 (4.00%) high mild
  3 (3.00%) high severe
Benchmarking limbo/Execute prepared statement: 'SELECT 1': Collecting 100 samples in estimated 5.000limbo/Execute prepared statement: 'SELECT 1'
                        time:   [84.479 ns 84.514 ns 84.549 ns]
                        thrpt:  [11.827 Melem/s 11.832 Melem/s 11.837 Melem/s]
Found 6 outliers among 100 measurements (6.00%)
  1 (1.00%) low mild
  2 (2.00%) high mild
  3 (3.00%) high severe
Benchmarking limbo/Execute prepared statement: 'SELECT * FROM users LIMIT 1': Warming up for 3.0000 Benchmarking limbo/Execute prepared statement: 'SELECT * FROM users LIMIT 1': Collecting 100 sampleslimbo/Execute prepared statement: 'SELECT * FROM users LIMIT 1'
                        time:   [778.95 ns 779.60 ns 780.44 ns]
                        thrpt:  [1.2813 Melem/s 1.2827 Melem/s 1.2838 Melem/s]
Found 9 outliers among 100 measurements (9.00%)
  5 (5.00%) high mild
  4 (4.00%) high severe
Benchmarking limbo/Execute prepared statement: 'SELECT * FROM users LIMIT 100': Warming up for 3.000Benchmarking limbo/Execute prepared statement: 'SELECT * FROM users LIMIT 100': Collecting 100 sampllimbo/Execute prepared statement: 'SELECT * FROM users LIMIT 100'
                        time:   [751.30 ns 754.08 ns 757.11 ns]
                        thrpt:  [1.3208 Melem/s 1.3261 Melem/s 1.3310 Melem/s]
Found 16 outliers among 100 measurements (16.00%)
  3 (3.00%) high mild
  13 (13.00%) high severe

Benchmarking rusqlite/Prepare statement: 'SELECT 1': Collecting 100 samples in estimated 5.0016 s (9rusqlite/Prepare statement: 'SELECT 1'
                        time:   [512.91 ns 513.97 ns 515.16 ns]
                        thrpt:  [1.9412 Melem/s 1.9456 Melem/s 1.9497 Melem/s]
Found 7 outliers among 100 measurements (7.00%)
  1 (1.00%) low mild
  4 (4.00%) high mild
  2 (2.00%) high severe
Benchmarking rusqlite/Prepare statement: 'SELECT * FROM users LIMIT 1': Collecting 100 samples in esrusqlite/Prepare statement: 'SELECT * FROM users LIMIT 1'
                        time:   [2.3836 µs 2.3909 µs 2.4000 µs]
                        thrpt:  [416.66 Kelem/s 418.25 Kelem/s 419.53 Kelem/s]
Found 6 outliers among 100 measurements (6.00%)
  2 (2.00%) high mild
  4 (4.00%) high severe
Benchmarking rusqlite/Execute prepared statement: 'SELECT 1': Collecting 100 samples in estimated 5.rusqlite/Execute prepared statement: 'SELECT 1'
                        time:   [42.028 ns 42.153 ns 42.294 ns]
                        thrpt:  [23.644 Melem/s 23.723 Melem/s 23.794 Melem/s]
Found 13 outliers among 100 measurements (13.00%)
  1 (1.00%) low mild
  6 (6.00%) high mild
  6 (6.00%) high severe
Benchmarking rusqlite/Execute prepared statement: 'SELECT * FROM users LIMIT 1': Warming up for 3.00Benchmarking rusqlite/Execute prepared statement: 'SELECT * FROM users LIMIT 1': Collecting 100 samprusqlite/Execute prepared statement: 'SELECT * FROM users LIMIT 1'
                        time:   [368.84 ns 369.32 ns 369.86 ns]
                        thrpt:  [2.7037 Melem/s 2.7077 Melem/s 2.7112 Melem/s]
Found 6 outliers among 100 measurements (6.00%)
  5 (5.00%) high mild
  1 (1.00%) high severe
Benchmarking rusqlite/Execute prepared statement: 'SELECT * FROM users LIMIT 100': Warming up for 3.Benchmarking rusqlite/Execute prepared statement: 'SELECT * FROM users LIMIT 100': Collecting 100 sarusqlite/Execute prepared statement: 'SELECT * FROM users LIMIT 100'
                        time:   [352.38 ns 352.64 ns 352.90 ns]
                        thrpt:  [2.8336 Melem/s 2.8358 Melem/s 2.8378 Melem/s]
Found 5 outliers among 100 measurements (5.00%)
  3 (3.00%) high mild
  2 (2.00%) high severe

     Running unittests main.rs (target/release/deps/limbo_sim-26e42eb40ec116bb)

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_sqlite3-203c8b01d05ac274)

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-fee142a79cee5532)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

Linux io-uring tests (complete at the same time):

running 136 tests
test json::tests::test_get_json_blob_valid_jsonb ... ok
test json::tests::test_get_json_non_text ... ok
test json::tests::test_get_json_blob_invalid_jsonb ... ok
test json::tests::test_get_json_invalid_jsonb ... ok
test json::tests::test_get_json_valid_json5 ... ok
test json::tests::test_get_json_valid_json5_infinity ... ok
test json::tests::test_get_json_valid_json5_double_single_quotes ... ok
test json::tests::test_get_json_invalid_json5 ... ok
test json::tests::test_get_json_valid_json5_nan ... ok
test json::tests::test_get_json_valid_json5_negative_infinity ... ok
test json::tests::test_get_json_valid_jsonb ... ok
test schema::tests::test_column_is_rowid_alias_inline_composite_primary_key ... ok
test schema::tests::test_column_is_rowid_alias_single_integer ... ok
test schema::tests::test_column_is_rowid_alias_single_integer_separate_primary_key_definition_without_rowid ... ok
test schema::tests::test_column_is_rowid_alias_single_integer_without_rowid ... ok
test schema::tests::test_column_is_rowid_alias_single_text ... ok
test schema::tests::test_primary_key_inline_multiple ... ok
test schema::tests::test_has_rowid_false ... ok
test schema::tests::test_has_rowid_true ... ok
test schema::tests::test_primary_key_inline_single ... ok
test schema::tests::test_column_is_rowid_alias_single_integer_separate_primary_key_definition ... ok
test schema::tests::test_primary_key_separate_multiple ... ok
test storage::sqlite3_ondisk::tests::read_varint_test::case_1 ... ok
test schema::tests::test_sqlite_schema ... ok
test schema::tests::test_primary_key_separate_single_quoted ... ok
test schema::tests::test_primary_key_separate_single ... ok
test storage::sqlite3_ondisk::tests::read_varint_test::case_2 ... ok
test storage::sqlite3_ondisk::tests::read_varint_test::case_3 ... ok
test schema::tests::test_column_is_rowid_alias_separate_composite_primary_key_definition ... ok
test storage::sqlite3_ondisk::tests::read_varint_test::case_5 ... ok
test schema::tests::test_primary_key_separate_single_doubly_quoted ... ok
test storage::sqlite3_ondisk::tests::read_varint_test::case_4 ... ok
test storage::sqlite3_ondisk::tests::read_varint_test::case_6 ... ok
test storage::sqlite3_ondisk::tests::test_read_invalid_value::case_3 ... ok
test storage::sqlite3_ondisk::tests::read_varint_test::case_7 ... ok
test storage::sqlite3_ondisk::tests::read_varint_test::case_8 ... ok
test storage::sqlite3_ondisk::tests::test_read_invalid_serial_type ... ok
test storage::sqlite3_ondisk::tests::test_read_invalid_value::case_4 ... ok
test storage::sqlite3_ondisk::tests::test_read_invalid_value::case_1 ... ok
test storage::sqlite3_ondisk::tests::read_varint_test::case_9 ... ok
test storage::sqlite3_ondisk::tests::test_read_invalid_value::case_2 ... ok
test storage::sqlite3_ondisk::tests::test_read_invalid_value::case_5 ... ok
test storage::sqlite3_ondisk::tests::test_read_invalid_value::case_6 ... ok
test storage::sqlite3_ondisk::tests::test_read_invalid_value::case_8 ... ok
test storage::sqlite3_ondisk::tests::test_read_invalid_value::case_7 ... ok
test storage::sqlite3_ondisk::tests::test_read_invalid_value::case_9 ... ok
test storage::sqlite3_ondisk::tests::test_read_invalid_varint ... ok
test storage::sqlite3_ondisk::tests::test_read_serial_type::case_01 ... ok
test storage::sqlite3_ondisk::tests::test_read_serial_type::case_02 ... ok
test storage::sqlite3_ondisk::tests::test_read_serial_type::case_03 ... ok
test storage::sqlite3_ondisk::tests::test_read_serial_type::case_04 ... ok
test storage::sqlite3_ondisk::tests::test_read_serial_type::case_05 ... ok
test storage::sqlite3_ondisk::tests::test_read_serial_type::case_06 ... ok
test storage::sqlite3_ondisk::tests::test_read_serial_type::case_07 ... ok
test storage::sqlite3_ondisk::tests::test_read_serial_type::case_08 ... ok
test storage::sqlite3_ondisk::tests::test_read_serial_type::case_09 ... ok
test storage::sqlite3_ondisk::tests::test_read_serial_type::case_10 ... ok
test storage::sqlite3_ondisk::tests::test_read_serial_type::case_11 ... ok
test storage::sqlite3_ondisk::tests::test_read_serial_type::case_13 ... ok
test storage::sqlite3_ondisk::tests::test_read_serial_type::case_12 ... ok
test storage::sqlite3_ondisk::tests::test_read_serial_type::case_14 ... ok
test storage::sqlite3_ondisk::tests::test_read_value::case_01 ... ok
test storage::sqlite3_ondisk::tests::test_read_value::case_02 ... ok
test storage::sqlite3_ondisk::tests::test_read_value::case_03 ... ok
test storage::sqlite3_ondisk::tests::test_read_value::case_04 ... ok
test storage::sqlite3_ondisk::tests::test_read_value::case_05 ... ok
test storage::sqlite3_ondisk::tests::test_read_value::case_06 ... ok
test storage::sqlite3_ondisk::tests::test_read_value::case_07 ... ok
test storage::sqlite3_ondisk::tests::test_read_value::case_08 ... ok
test storage::sqlite3_ondisk::tests::test_read_value::case_09 ... ok
test storage::sqlite3_ondisk::tests::test_read_value::case_10 ... ok
test storage::sqlite3_ondisk::tests::test_read_value::case_11 ... ok
test storage::sqlite3_ondisk::tests::test_read_value::case_12 ... ok
test storage::sqlite3_ondisk::tests::test_write_varint::case_01 ... ok
test storage::sqlite3_ondisk::tests::test_write_varint::case_02 ... ok
test storage::sqlite3_ondisk::tests::test_write_varint::case_03 ... ok
test storage::sqlite3_ondisk::tests::test_write_varint::case_04 ... ok
test storage::sqlite3_ondisk::tests::test_write_varint::case_05 ... ok
test storage::sqlite3_ondisk::tests::test_write_varint::case_06 ... ok
test io::linux::tests::test_multiple_processes_cannot_open_file ... ok
test storage::sqlite3_ondisk::tests::test_write_varint::case_07 ... ok
test storage::sqlite3_ondisk::tests::test_write_varint::case_08 ... ok
test storage::sqlite3_ondisk::tests::test_write_varint::case_09 ... ok
test vdbe::datetime::tests::test_apply_modifier_date_time_offset ... ignored
test storage::sqlite3_ondisk::tests::test_write_varint::case_10 ... ok
test vdbe::datetime::tests::test_apply_modifier_days ... ok
test vdbe::datetime::tests::test_apply_modifier_hours ... ok
test vdbe::datetime::tests::test_apply_modifier_minutes ... ok
test vdbe::datetime::tests::test_apply_modifier_seconds ... ok
test vdbe::datetime::tests::test_apply_modifier_start_of_day ... ok
test vdbe::datetime::tests::test_apply_modifier_start_of_year ... ok
test vdbe::datetime::tests::test_apply_modifier_time_offset ... ok
test vdbe::datetime::tests::test_parse_date_offset ... ok
test vdbe::datetime::tests::test_parse_date_time_offset ... ok
test vdbe::datetime::tests::test_parse_days ... ok
test vdbe::datetime::tests::test_parse_hours ... ok
test vdbe::datetime::tests::test_parse_invalid_modifier ... ok
test vdbe::datetime::tests::test_parse_minutes ... ok
test vdbe::datetime::tests::test_parse_months ... ok
test vdbe::datetime::tests::test_parse_other_modifiers ... ok
test vdbe::datetime::tests::test_parse_seconds ... ok
test vdbe::datetime::tests::test_parse_start_of ... ok
test vdbe::datetime::tests::test_parse_time_offset ... ok
test vdbe::datetime::tests::test_parse_weekday ... ok
test vdbe::datetime::tests::test_parse_years ... ok
test vdbe::tests::test_abs ... ok
test vdbe::tests::test_char ... ok
test vdbe::tests::test_exec_if ... ok
test vdbe::tests::test_exec_instr ... ok
test vdbe::tests::test_exec_randomblob ... ok
test vdbe::tests::test_exec_round ... ok
test vdbe::tests::test_exec_sign ... ok
test vdbe::tests::test_exec_zeroblob ... ok
test vdbe::tests::test_execute_sqlite_version ... ok
test vdbe::tests::test_hex ... ok
test vdbe::tests::test_length ... ok
test vdbe::tests::test_lower_case ... ok
test vdbe::tests::test_ltrim ... ok
test vdbe::tests::test_min_max ... ok
test vdbe::tests::test_nullif ... ok
test vdbe::datetime::tests::test_invalid_get_date_from_time_value ... ok
test vdbe::tests::test_quote ... ok
test vdbe::datetime::tests::test_invalid_get_time_from_datetime_value ... ok
test vdbe::tests::test_random ... ok
test vdbe::tests::test_substring ... ok
test vdbe::tests::test_rtrim ... ok
test vdbe::tests::test_trim ... ok
test vdbe::tests::test_typeof ... ok
test vdbe::tests::test_unhex ... ok
test vdbe::tests::test_unicode ... ok
test vdbe::tests::test_upper_case ... ok
test vdbe::tests::test_get_new_rowid ... ok
test vdbe::datetime::tests::test_valid_get_time_from_datetime_value ... ok
test vdbe::datetime::tests::test_valid_get_date_from_time_value ... ok
test vdbe::tests::test_like_with_cache ... ok
test vdbe::tests::test_like_no_cache ... ok

test result: ok. 135 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.01s

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment