Created
November 4, 2024 05:29
-
-
Save wolfspider/eda44821e72d9b18d5b839a758755232 to your computer and use it in GitHub Desktop.
Limbo AIO-MIO FreeBSD Perf Results
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
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
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
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!