Skip to content

Commit

Permalink
Print the elapsed time & # of returned rows in the interactive repl (#…
Browse files Browse the repository at this point in the history
…344)

* Print the elapsed time & # of returned rows in the interactive repl

* Fixed clippy warning

* Change formatting of timings to be like psql & remove it from direct sql calls

---------

Co-authored-by: Tyler Cloutier <[email protected]>
  • Loading branch information
mamcx and cloutiertyler authored Oct 3, 2023
1 parent f0e4b00 commit d456ce4
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 5 deletions.
9 changes: 6 additions & 3 deletions crates/cli/src/subcommands/repl.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
use crate::api::{ClientApi, Connection};
use crate::sql::run_sql;
use colored::*;
use dirs::home_dir;
use std::env::temp_dir;

use rustyline::completion::Completer;
use rustyline::error::ReadlineError;
Expand Down Expand Up @@ -39,7 +41,8 @@ sort by
pub async fn exec(con: Connection) -> Result<(), anyhow::Error> {
let database = con.database.clone();
let mut rl = Editor::<ReplHelper, DefaultHistory>::new().unwrap();
if rl.load_history(".history.txt").is_err() {
let history = home_dir().unwrap_or_else(temp_dir).join(".stdb.history.txt");
if rl.load_history(&history).is_err() {
eprintln!("No previous history.");
}
rl.set_helper(Some(ReplHelper::new().unwrap()));
Expand Down Expand Up @@ -68,7 +71,7 @@ pub async fn exec(con: Connection) -> Result<(), anyhow::Error> {
sql => {
rl.add_history_entry(sql).ok();

if let Err(err) = run_sql(api.sql(), sql).await {
if let Err(err) = run_sql(api.sql(), sql, true).await {
eprintln!("{}", err.to_string().red())
}
}
Expand All @@ -84,7 +87,7 @@ pub async fn exec(con: Connection) -> Result<(), anyhow::Error> {
}
}

rl.save_history(".history.txt").ok();
rl.save_history(&history).ok();

Ok(())
}
Expand Down
25 changes: 23 additions & 2 deletions crates/cli/src/subcommands/sql.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
use std::time::Instant;

use crate::api::{from_json_seed, ClientApi, Connection, StmtResultJson};
use clap::{Arg, ArgAction, ArgGroup, ArgMatches};
use reqwest::RequestBuilder;
Expand Down Expand Up @@ -73,7 +75,23 @@ pub(crate) async fn parse_req(mut config: Config, args: &ArgMatches) -> Result<C
})
}

pub(crate) async fn run_sql(builder: RequestBuilder, sql: &str) -> Result<(), anyhow::Error> {
// Need to report back timings from each query from the backend instead of infer here...
fn print_row_count(rows: usize, with_stats: bool) {
if with_stats {
let txt = if rows == 1 { "row" } else { "rows" };
println!("({rows} {txt})");
}
}

fn print_timings(now: Instant, with_stats: bool) {
if with_stats {
println!("Time: {:.2?}", now.elapsed());
}
}

pub(crate) async fn run_sql(builder: RequestBuilder, sql: &str, with_stats: bool) -> Result<(), anyhow::Error> {
let now = Instant::now();

let json = builder
.body(sql.to_owned())
.send()
Expand All @@ -86,6 +104,7 @@ pub(crate) async fn run_sql(builder: RequestBuilder, sql: &str) -> Result<(), an

// Print only `OK for empty tables as it's likely a command like `INSERT`.
if stmt_result_json.is_empty() {
print_timings(now, with_stats);
println!("OK");
return Ok(());
};
Expand Down Expand Up @@ -121,7 +140,9 @@ pub(crate) async fn run_sql(builder: RequestBuilder, sql: &str) -> Result<(), an
} else {
println!("{}", table);
}
print_row_count(rows.len(), with_stats);
}
print_timings(now, with_stats);

Ok(())
}
Expand All @@ -138,7 +159,7 @@ pub async fn exec(config: Config, args: &ArgMatches) -> Result<(), anyhow::Error
let con = parse_req(config, args).await?;
let api = ClientApi::new(con);

run_sql(api.sql(), query).await?;
run_sql(api.sql(), query, false).await?;
}
Ok(())
}

1 comment on commit d456ce4

@github-actions
Copy link

Choose a reason for hiding this comment

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

Benchmark for d456ce4

Click to view benchmark
Test Base PR %
serialize/location/bsatn/count=100 2.6±0.04µs 37.2 MElem/sec N/A N/A
serialize/location/json/count=100 3.7±0.08µs 25.5 MElem/sec N/A N/A
serialize/location/product_value/count=100 2.5±0.03µs 37.9 MElem/sec N/A N/A
serialize/person/bsatn/count=100 3.2±0.04µs 29.8 MElem/sec N/A N/A
serialize/person/json/count=100 5.4±0.08µs 17.8 MElem/sec N/A N/A
serialize/person/product_value/count=100 1801.7±30.96ns 52.9 MElem/sec N/A N/A
sqlite/disk/empty 427.1±1.82ns 425.5±4.18ns -0.37%
sqlite/disk/filter/string/indexed/load=1000/count=10 5.5±0.19µs 176.5 KElem/sec N/A N/A
sqlite/disk/filter/string/non_indexed/load=1000/count=10 53.8±3.03µs 18.1 KElem/sec N/A N/A
sqlite/disk/filter/u64/indexed/load=1000/count=10 5.4±0.12µs 182.3 KElem/sec N/A N/A
sqlite/disk/filter/u64/non_indexed/load=1000/count=10 40.4±0.80µs 24.2 KElem/sec N/A N/A
sqlite/disk/find_unique/u32/load=1000 2.3±0.22µs 425.5 KElem/sec N/A N/A
sqlite/disk/insert_1/location/multi_index/load=0 15.0±0.68µs 65.2 KElem/sec N/A N/A
sqlite/disk/insert_1/location/multi_index/load=1000 19.7±0.63µs 49.6 KElem/sec N/A N/A
sqlite/disk/insert_1/location/non_unique/load=0 7.2±0.11µs 135.5 KElem/sec N/A N/A
sqlite/disk/insert_1/location/non_unique/load=1000 7.5±0.12µs 129.5 KElem/sec N/A N/A
sqlite/disk/insert_1/location/unique/load=0 7.3±0.28µs 133.3 KElem/sec N/A N/A
sqlite/disk/insert_1/location/unique/load=1000 7.5±0.20µs 129.8 KElem/sec N/A N/A
sqlite/disk/insert_1/person/multi_index/load=0 14.3±0.14µs 68.1 KElem/sec N/A N/A
sqlite/disk/insert_1/person/multi_index/load=1000 20.0±0.45µs 48.9 KElem/sec N/A N/A
sqlite/disk/insert_1/person/non_unique/load=0 7.2±0.15µs 134.9 KElem/sec N/A N/A
sqlite/disk/insert_1/person/non_unique/load=1000 7.6±0.15µs 128.5 KElem/sec N/A N/A
sqlite/disk/insert_1/person/unique/load=0 7.2±0.10µs 135.6 KElem/sec N/A N/A
sqlite/disk/insert_1/person/unique/load=1000 7.8±0.21µs 125.6 KElem/sec N/A N/A
sqlite/disk/insert_bulk/location/multi_index/load=0/count=100 124.9±2.17µs 123.8±0.83µs -0.88%
sqlite/disk/insert_bulk/location/multi_index/load=1000/count=100 211.7±3.44µs 209.0±2.98µs -1.28%
sqlite/disk/insert_bulk/location/non_unique/load=0/count=100 42.8±0.68µs 22.8 KElem/sec N/A N/A
sqlite/disk/insert_bulk/location/non_unique/load=1000/count=100 46.3±0.60µs 21.1 KElem/sec N/A N/A
sqlite/disk/insert_bulk/location/unique/load=0/count=100 45.8±1.25µs 21.3 KElem/sec N/A N/A
sqlite/disk/insert_bulk/location/unique/load=1000/count=100 51.4±0.36µs 19.0 KElem/sec N/A N/A
sqlite/disk/insert_bulk/person/multi_index/load=0/count=100 115.0±1.56µs 113.9±0.85µs -0.96%
sqlite/disk/insert_bulk/person/multi_index/load=1000/count=100 253.3±6.16µs 253.3±4.51µs 0.00%
sqlite/disk/insert_bulk/person/non_unique/load=0/count=100 41.4±0.18µs 23.6 KElem/sec N/A N/A
sqlite/disk/insert_bulk/person/non_unique/load=1000/count=100 57.8±0.96µs 16.9 KElem/sec N/A N/A
sqlite/disk/insert_bulk/person/unique/load=0/count=100 43.9±0.37µs 22.3 KElem/sec N/A N/A
sqlite/disk/insert_bulk/person/unique/load=1000/count=100 50.4±0.35µs 19.4 KElem/sec N/A N/A
sqlite/disk/iterate/location/unique/count=100 8.2±0.19µs 118.6 KElem/sec N/A N/A
sqlite/disk/iterate/person/unique/count=100 8.6±0.22µs 113.6 KElem/sec N/A N/A
sqlite/mem/empty 425.1±4.79ns 425.3±6.66ns +0.05%
sqlite/mem/filter/string/indexed/load=1000/count=10 4.1±0.05µs 236.8 KElem/sec N/A N/A
sqlite/mem/filter/string/non_indexed/load=1000/count=10 50.6±0.40µs 19.3 KElem/sec N/A N/A
sqlite/mem/filter/u64/indexed/load=1000/count=10 4.0±0.11µs 243.6 KElem/sec N/A N/A
sqlite/mem/filter/u64/non_indexed/load=1000/count=10 38.7±0.73µs 25.2 KElem/sec N/A N/A
sqlite/mem/find_unique/u32/load=1000 1068.5±27.29ns 914.0 KElem/sec N/A N/A
sqlite/mem/insert_1/location/multi_index/load=0 4.4±0.09µs 221.0 KElem/sec N/A N/A
sqlite/mem/insert_1/location/multi_index/load=1000 5.6±0.11µs 173.3 KElem/sec N/A N/A
sqlite/mem/insert_1/location/non_unique/load=0 1807.9±38.56ns 540.2 KElem/sec N/A N/A
sqlite/mem/insert_1/location/non_unique/load=1000 1878.1±30.43ns 520.0 KElem/sec N/A N/A
sqlite/mem/insert_1/location/unique/load=0 1806.9±22.98ns 540.5 KElem/sec N/A N/A
sqlite/mem/insert_1/location/unique/load=1000 1923.1±28.20ns 507.8 KElem/sec N/A N/A
sqlite/mem/insert_1/person/multi_index/load=0 4.3±0.05µs 225.9 KElem/sec N/A N/A
sqlite/mem/insert_1/person/multi_index/load=1000 6.6±0.09µs 148.3 KElem/sec N/A N/A
sqlite/mem/insert_1/person/non_unique/load=0 1852.3±22.48ns 527.2 KElem/sec N/A N/A
sqlite/mem/insert_1/person/non_unique/load=1000 1985.9±44.32ns 491.7 KElem/sec N/A N/A
sqlite/mem/insert_1/person/unique/load=0 1830.5±23.17ns 533.5 KElem/sec N/A N/A
sqlite/mem/insert_1/person/unique/load=1000 2.0±0.06µs 485.4 KElem/sec N/A N/A
sqlite/mem/insert_bulk/location/multi_index/load=0/count=100 112.9±1.54µs 112.0±4.51µs -0.80%
sqlite/mem/insert_bulk/location/multi_index/load=1000/count=100 167.6±2.17µs 167.0±4.00µs -0.36%
sqlite/mem/insert_bulk/location/non_unique/load=0/count=100 36.0±0.58µs 27.1 KElem/sec N/A N/A
sqlite/mem/insert_bulk/location/non_unique/load=1000/count=100 39.0±0.34µs 25.1 KElem/sec N/A N/A
sqlite/mem/insert_bulk/location/unique/load=0/count=100 38.7±0.48µs 25.2 KElem/sec N/A N/A
sqlite/mem/insert_bulk/location/unique/load=1000/count=100 43.5±0.79µs 22.5 KElem/sec N/A N/A
sqlite/mem/insert_bulk/person/multi_index/load=0/count=100 102.7±5.52µs 102.9±0.98µs +0.19%
sqlite/mem/insert_bulk/person/multi_index/load=1000/count=100 195.0±2.29µs 197.2±3.44µs +1.13%
sqlite/mem/insert_bulk/person/non_unique/load=0/count=100 35.6±0.38µs 27.4 KElem/sec N/A N/A
sqlite/mem/insert_bulk/person/non_unique/load=1000/count=100 42.7±2.19µs 22.9 KElem/sec N/A N/A
sqlite/mem/insert_bulk/person/unique/load=0/count=100 38.1±0.66µs 25.6 KElem/sec N/A N/A
sqlite/mem/insert_bulk/person/unique/load=1000/count=100 43.0±0.44µs 22.7 KElem/sec N/A N/A
sqlite/mem/iterate/location/unique/count=100 7.2±0.07µs 136.1 KElem/sec N/A N/A
sqlite/mem/iterate/person/unique/count=100 7.4±0.13µs 132.8 KElem/sec N/A N/A
stdb_module/disk/empty 26.4±0.89µs 26.2±0.88µs -0.76%
stdb_module/disk/filter/string/indexed/load=1000/count=10 59.7±7.06µs 16.4 KElem/sec N/A N/A
stdb_module/disk/filter/string/non_indexed/load=1000/count=10 149.1±3.64µs 146.1±2.93µs -2.01%
stdb_module/disk/filter/u64/indexed/load=1000/count=10 52.7±8.20µs 18.5 KElem/sec N/A N/A
stdb_module/disk/filter/u64/non_indexed/load=1000/count=10 118.9±12.44µs 115.5±2.89µs -2.86%
stdb_module/disk/find_unique/u32/load=1000 35.1±2.46µs 27.8 KElem/sec N/A N/A
stdb_module/disk/insert_1/location/multi_index/load=0 49.9±4.20µs 19.6 KElem/sec N/A N/A
stdb_module/disk/insert_1/location/multi_index/load=1000 382.2±26.76µs 354.9±26.74µs -7.14%
stdb_module/disk/insert_1/location/non_unique/load=0 47.0±3.16µs 20.8 KElem/sec N/A N/A
stdb_module/disk/insert_1/location/non_unique/load=1000 332.3±28.24µs 327.3±22.79µs -1.50%
stdb_module/disk/insert_1/location/unique/load=0 48.1±3.08µs 20.3 KElem/sec N/A N/A
stdb_module/disk/insert_1/location/unique/load=1000 377.4±25.29µs 381.3±30.46µs +1.03%
stdb_module/disk/insert_1/person/multi_index/load=0 61.3±4.70µs 15.9 KElem/sec N/A N/A
stdb_module/disk/insert_1/person/multi_index/load=1000 507.5±47.67µs 473.1±45.56µs -6.78%
stdb_module/disk/insert_1/person/non_unique/load=0 51.5±7.93µs 19.0 KElem/sec N/A N/A
stdb_module/disk/insert_1/person/non_unique/load=1000 342.6±34.64µs 313.7±35.21µs -8.44%
stdb_module/disk/insert_1/person/unique/load=0 53.5±5.94µs 18.2 KElem/sec N/A N/A
stdb_module/disk/insert_1/person/unique/load=1000 421.9±44.96µs 362.9±41.89µs -13.98%
stdb_module/disk/insert_bulk/location/multi_index/load=0/count=100 884.9±24.50µs 878.6±25.45µs -0.71%
stdb_module/disk/insert_bulk/location/multi_index/load=1000/count=100 1152.6±34.78µs 1171.1±417.83µs +1.61%
stdb_module/disk/insert_bulk/location/non_unique/load=0/count=100 621.4±24.60µs 596.0±16.31µs -4.09%
stdb_module/disk/insert_bulk/location/non_unique/load=1000/count=100 836.2±34.17µs 822.4±24.25µs -1.65%
stdb_module/disk/insert_bulk/location/unique/load=0/count=100 733.5±16.29µs 740.2±14.49µs +0.91%
stdb_module/disk/insert_bulk/location/unique/load=1000/count=100 1046.6±37.56µs 1026.7±30.51µs -1.90%
stdb_module/disk/insert_bulk/person/multi_index/load=0/count=100 1437.9±66.45µs 1448.0±70.62µs +0.70%
stdb_module/disk/insert_bulk/person/multi_index/load=1000/count=100 1844.5±53.08µs 1849.8±68.33µs +0.29%
stdb_module/disk/insert_bulk/person/non_unique/load=0/count=100 809.5±35.07µs 799.6±19.04µs -1.22%
stdb_module/disk/insert_bulk/person/non_unique/load=1000/count=100 1023.9±40.08µs 1026.2±51.46µs +0.22%
stdb_module/disk/insert_bulk/person/unique/load=0/count=100 1018.3±19.55µs 1035.6±24.91µs +1.70%
stdb_module/disk/insert_bulk/person/unique/load=1000/count=100 1398.8±60.79µs 1347.1±53.66µs -3.70%
stdb_module/disk/iterate/location/unique/count=100 139.3±11.30µs 134.3±10.93µs -3.59%
stdb_module/disk/iterate/person/unique/count=100 229.3±6.41µs 221.1±8.60µs -3.58%
stdb_module/large_arguments/64KiB 108.2±10.65µs 105.7±3.29µs -2.31%
stdb_module/mem/empty 25.3±1.07µs 26.1±1.31µs +3.16%
stdb_module/mem/filter/string/indexed/load=1000/count=10 55.1±5.16µs 17.7 KElem/sec N/A N/A
stdb_module/mem/filter/string/non_indexed/load=1000/count=10 142.9±3.66µs 140.6±2.17µs -1.61%
stdb_module/mem/filter/u64/indexed/load=1000/count=10 49.3±3.91µs 19.8 KElem/sec N/A N/A
stdb_module/mem/filter/u64/non_indexed/load=1000/count=10 118.2±7.89µs 112.9±1.47µs -4.48%
stdb_module/mem/find_unique/u32/load=1000 35.1±1.86µs 27.8 KElem/sec N/A N/A
stdb_module/mem/insert_1/location/multi_index/load=0 47.6±3.53µs 20.5 KElem/sec N/A N/A
stdb_module/mem/insert_1/location/multi_index/load=1000 337.3±20.22µs 294.9±22.67µs -12.57%
stdb_module/mem/insert_1/location/non_unique/load=0 41.9±2.75µs 23.3 KElem/sec N/A N/A
stdb_module/mem/insert_1/location/non_unique/load=1000 209.7±19.89µs 206.8±25.99µs -1.38%
stdb_module/mem/insert_1/location/unique/load=0 44.8±4.19µs 21.8 KElem/sec N/A N/A
stdb_module/mem/insert_1/location/unique/load=1000 275.1±29.68µs 257.2±27.62µs -6.51%
stdb_module/mem/insert_1/person/multi_index/load=0 50.8±3.33µs 19.2 KElem/sec N/A N/A
stdb_module/mem/insert_1/person/multi_index/load=1000 442.7±48.82µs 457.5±38.65µs +3.34%
stdb_module/mem/insert_1/person/non_unique/load=0 44.5±2.95µs 21.9 KElem/sec N/A N/A
stdb_module/mem/insert_1/person/non_unique/load=1000 277.4±35.56µs 289.3±92.82µs +4.29%
stdb_module/mem/insert_1/person/unique/load=0 45.4±2.28µs 21.5 KElem/sec N/A N/A
stdb_module/mem/insert_1/person/unique/load=1000 351.8±36.70µs 347.9±31.81µs -1.11%
stdb_module/mem/insert_bulk/location/multi_index/load=0/count=100 761.7±17.61µs 764.1±18.30µs +0.32%
stdb_module/mem/insert_bulk/location/multi_index/load=1000/count=100 1030.9±37.82µs 1007.5±69.53µs -2.27%
stdb_module/mem/insert_bulk/location/non_unique/load=0/count=100 501.0±11.79µs 496.2±10.65µs -0.96%
stdb_module/mem/insert_bulk/location/non_unique/load=1000/count=100 639.4±23.68µs 659.6±22.75µs +3.16%
stdb_module/mem/insert_bulk/location/unique/load=0/count=100 649.9±22.13µs 652.7±20.85µs +0.43%
stdb_module/mem/insert_bulk/location/unique/load=1000/count=100 889.2±34.29µs 869.3±23.92µs -2.24%
stdb_module/mem/insert_bulk/person/multi_index/load=0/count=100 1347.5±41.70µs 1357.3±46.81µs +0.73%
stdb_module/mem/insert_bulk/person/multi_index/load=1000/count=100 1711.7±62.89µs 1707.5±62.29µs -0.25%
stdb_module/mem/insert_bulk/person/non_unique/load=0/count=100 703.2±21.79µs 704.8±18.89µs +0.23%
stdb_module/mem/insert_bulk/person/non_unique/load=1000/count=100 907.9±37.09µs 907.3±38.84µs -0.07%
stdb_module/mem/insert_bulk/person/unique/load=0/count=100 933.6±36.72µs 942.2±25.09µs +0.92%
stdb_module/mem/insert_bulk/person/unique/load=1000/count=100 1214.9±57.93µs 1209.9±57.47µs -0.41%
stdb_module/mem/iterate/location/unique/count=100 136.3±5.39µs 134.1±9.63µs -1.61%
stdb_module/mem/iterate/person/unique/count=100 216.4±3.34µs 230.3±9.79µs +6.42%
stdb_module/print_bulk/lines=1 35.3±1.88µs 34.0±1.53µs -3.68%
stdb_module/print_bulk/lines=100 315.0±10.56µs 323.8±5.81µs +2.79%
stdb_module/print_bulk/lines=1000 2.9±0.04ms 3.0±0.05ms +3.45%
stdb_raw/disk/empty 103.6±2.35ns 102.8±0.97ns -0.77%
stdb_raw/disk/filter/string/indexed/load=1000/count=10 2.6±0.05µs 379.5 KElem/sec N/A N/A
stdb_raw/disk/filter/string/non_indexed/load=1000/count=10 95.9±1.50µs 10.2 KElem/sec N/A N/A
stdb_raw/disk/filter/u64/indexed/load=1000/count=10 2.4±0.02µs 409.1 KElem/sec N/A N/A
stdb_raw/disk/filter/u64/non_indexed/load=1000/count=10 77.0±0.84µs 12.7 KElem/sec N/A N/A
stdb_raw/disk/find_unique/u32/load=1000 564.2±10.60ns 1731.0 KElem/sec N/A N/A
stdb_raw/disk/insert_1/location/multi_index/load=0 6.2±0.09µs 157.6 KElem/sec N/A N/A
stdb_raw/disk/insert_1/location/multi_index/load=1000 34.4±5.19µs 28.4 KElem/sec N/A N/A
stdb_raw/disk/insert_1/location/non_unique/load=0 4.0±0.06µs 244.7 KElem/sec N/A N/A
stdb_raw/disk/insert_1/location/non_unique/load=1000 21.0±2.87µs 46.4 KElem/sec N/A N/A
stdb_raw/disk/insert_1/location/unique/load=0 5.0±0.12µs 193.7 KElem/sec N/A N/A
stdb_raw/disk/insert_1/location/unique/load=1000 27.4±3.14µs 35.7 KElem/sec N/A N/A
stdb_raw/disk/insert_1/person/multi_index/load=0 10.3±0.08µs 94.7 KElem/sec N/A N/A
stdb_raw/disk/insert_1/person/multi_index/load=1000 32.9±1.55µs 29.7 KElem/sec N/A N/A
stdb_raw/disk/insert_1/person/non_unique/load=0 4.7±0.09µs 206.8 KElem/sec N/A N/A
stdb_raw/disk/insert_1/person/non_unique/load=1000 17.0±0.79µs 57.5 KElem/sec N/A N/A
stdb_raw/disk/insert_1/person/unique/load=0 6.9±0.18µs 140.8 KElem/sec N/A N/A
stdb_raw/disk/insert_1/person/unique/load=1000 27.6±7.18µs 35.4 KElem/sec N/A N/A
stdb_raw/disk/insert_bulk/location/multi_index/load=0/count=100 366.0±1.45µs 365.0±2.57µs -0.27%
stdb_raw/disk/insert_bulk/location/multi_index/load=1000/count=100 432.2±5.14µs 432.0±3.94µs -0.05%
stdb_raw/disk/insert_bulk/location/non_unique/load=0/count=100 164.1±5.07µs 165.2±2.48µs +0.67%
stdb_raw/disk/insert_bulk/location/non_unique/load=1000/count=100 190.3±4.44µs 189.8±2.27µs -0.26%
stdb_raw/disk/insert_bulk/location/unique/load=0/count=100 261.0±3.66µs 260.3±1.36µs -0.27%
stdb_raw/disk/insert_bulk/location/unique/load=1000/count=100 324.8±4.77µs 321.0±2.61µs -1.17%
stdb_raw/disk/insert_bulk/person/multi_index/load=0/count=100 743.8±8.00µs 746.1±6.78µs +0.31%
stdb_raw/disk/insert_bulk/person/multi_index/load=1000/count=100 824.7±19.76µs 819.3±7.81µs -0.65%
stdb_raw/disk/insert_bulk/person/non_unique/load=0/count=100 233.8±5.35µs 231.3±10.43µs -1.07%
stdb_raw/disk/insert_bulk/person/non_unique/load=1000/count=100 255.3±2.54µs 253.4±2.79µs -0.74%
stdb_raw/disk/insert_bulk/person/unique/load=0/count=100 436.7±30.17µs 430.4±4.36µs -1.44%
stdb_raw/disk/insert_bulk/person/unique/load=1000/count=100 486.3±14.32µs 486.9±14.38µs +0.12%
stdb_raw/disk/iterate/location/unique/count=100 6.8±0.05µs 142.8 KElem/sec N/A N/A
stdb_raw/disk/iterate/person/unique/count=100 8.3±0.16µs 117.8 KElem/sec N/A N/A
stdb_raw/mem/empty 102.6±0.90ns 102.6±0.42ns 0.00%
stdb_raw/mem/filter/string/indexed/load=1000/count=10 2.6±0.08µs 376.4 KElem/sec N/A N/A
stdb_raw/mem/filter/string/non_indexed/load=1000/count=10 95.7±2.38µs 10.2 KElem/sec N/A N/A
stdb_raw/mem/filter/u64/indexed/load=1000/count=10 2.4±0.04µs 408.0 KElem/sec N/A N/A
stdb_raw/mem/filter/u64/non_indexed/load=1000/count=10 77.5±2.26µs 12.6 KElem/sec N/A N/A
stdb_raw/mem/find_unique/u32/load=1000 558.7±4.93ns 1748.0 KElem/sec N/A N/A
stdb_raw/mem/insert_1/location/multi_index/load=0 5.1±0.07µs 192.4 KElem/sec N/A N/A
stdb_raw/mem/insert_1/location/multi_index/load=1000 26.6±1.55µs 36.7 KElem/sec N/A N/A
stdb_raw/mem/insert_1/location/non_unique/load=0 2.7±0.04µs 363.5 KElem/sec N/A N/A
stdb_raw/mem/insert_1/location/non_unique/load=1000 16.4±0.46µs 59.7 KElem/sec N/A N/A
stdb_raw/mem/insert_1/location/unique/load=0 3.5±0.04µs 278.0 KElem/sec N/A N/A
stdb_raw/mem/insert_1/location/unique/load=1000 22.7±1.22µs 43.1 KElem/sec N/A N/A
stdb_raw/mem/insert_1/person/multi_index/load=0 8.7±0.22µs 111.9 KElem/sec N/A N/A
stdb_raw/mem/insert_1/person/multi_index/load=1000 26.6±1.84µs 36.7 KElem/sec N/A N/A
stdb_raw/mem/insert_1/person/non_unique/load=0 3.2±0.05µs 302.0 KElem/sec N/A N/A
stdb_raw/mem/insert_1/person/non_unique/load=1000 11.5±0.34µs 85.0 KElem/sec N/A N/A
stdb_raw/mem/insert_1/person/unique/load=0 5.2±0.07µs 186.0 KElem/sec N/A N/A
stdb_raw/mem/insert_1/person/unique/load=1000 18.6±1.01µs 52.5 KElem/sec N/A N/A
stdb_raw/mem/insert_bulk/location/multi_index/load=0/count=100 369.1±2.87µs 369.2±5.06µs +0.03%
stdb_raw/mem/insert_bulk/location/multi_index/load=1000/count=100 420.5±9.94µs 425.3±15.28µs +1.14%
stdb_raw/mem/insert_bulk/location/non_unique/load=0/count=100 160.2±0.76µs 161.3±2.91µs +0.69%
stdb_raw/mem/insert_bulk/location/non_unique/load=1000/count=100 183.5±3.13µs 183.9±3.22µs +0.22%
stdb_raw/mem/insert_bulk/location/unique/load=0/count=100 263.6±4.22µs 262.4±8.96µs -0.46%
stdb_raw/mem/insert_bulk/location/unique/load=1000/count=100 312.6±6.12µs 312.3±6.16µs -0.10%
stdb_raw/mem/insert_bulk/person/multi_index/load=0/count=100 741.8±8.10µs 748.3±7.92µs +0.88%
stdb_raw/mem/insert_bulk/person/multi_index/load=1000/count=100 810.2±21.47µs 826.0±10.63µs +1.95%
stdb_raw/mem/insert_bulk/person/non_unique/load=0/count=100 228.1±2.31µs 227.9±2.51µs -0.09%
stdb_raw/mem/insert_bulk/person/non_unique/load=1000/count=100 247.9±6.09µs 248.0±8.76µs +0.04%
stdb_raw/mem/insert_bulk/person/unique/load=0/count=100 428.4±5.34µs 429.9±4.13µs +0.35%
stdb_raw/mem/insert_bulk/person/unique/load=1000/count=100 472.2±2.33µs 476.3±7.69µs +0.87%
stdb_raw/mem/iterate/location/unique/count=100 6.9±0.15µs 141.5 KElem/sec N/A N/A
stdb_raw/mem/iterate/person/unique/count=100 8.2±0.26µs 119.0 KElem/sec N/A N/A

Please sign in to comment.