Skip to content

parse very slow #90

@zhuxiujia

Description

@zhuxiujia
#![feature(test)]
extern crate test;
use test::Bencher;
use sqlparser::dialect::MySqlDialect;
use sqlparser::parser::Parser;

#[bench]
fn bench_sqlparser(b: &mut Bencher) {
    let pg_dialect = MySqlDialect {};
    let sql = r#"SELECT COUNT(*) FROM t"#;
    let _ = Parser::parse_sql(&pg_dialect, sql).unwrap();
    b.iter(||{
        Parser::parse_sql(&pg_dialect, sql).unwrap();
    });
}

#[bench]
fn bench_nomsql(b: &mut Bencher) {
    let sql = r#"SELECT COUNT(*) FROM t"#;
    let s=nom_sql::parser::parse_query(sql);
    if s.is_err(){
        panic!("{}",s.err().unwrap())
    }
    b.iter(||{
        nom_sql::parser::parse_query(sql).unwrap();
    });
}
  • result
running 2 tests
test bench_nomsql    ... bench:      10,228 ns/iter (+/- 352)
test bench_sqlparser ... bench:       2,832 ns/iter (+/- 64)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions