micro benchmarks work

This commit is contained in:
Alex Garcia 2024-06-11 23:57:46 -07:00
parent 66bc7e8947
commit 44b365a23f
5 changed files with 754 additions and 30 deletions

View file

@ -1,31 +1,12 @@
#![feature(test)]
use rusqlite::ffi::sqlite3_auto_extension;
extern crate test;
pub fn add_two(a: i32) -> i32 {
a + 2
#[link(name = "sqlite_vec0")]
extern "C" {
pub fn sqlite3_vec_init();
}
#[cfg(test)]
mod tests {
use super::*;
use rusqlite::Connection;
use test::Bencher;
#[test]
fn it_works() {
assert_eq!(4, add_two(2));
}
#[bench]
fn bench_add_two(b: &mut Bencher) {
let db = Connection::open_in_memory().unwrap();
let v: Vec<f32> = vec![0.1, 0.2, 0.3];
b.iter(|| {
let sqlite_version: String = db
.query_row("select sqlite_version()", [], |x| x.get(0))
.unwrap();
});
pub fn init_vec() {
unsafe {
sqlite3_auto_extension(Some(std::mem::transmute(sqlite3_vec_init as *const ())));
}
}