davisp opened a new pull request, #1587:
URL: https://github.com/apache/datafusion-sqlparser-rs/pull/1587

   This basically just takes the approach proposed by @alamb in #1561 and runs 
with it.
   
   The main changes involved:
   
   1. A number of token parsing methods introduced that return a 
`&TokenWithSpan` instead of a cloned `TokenWithSpan`.
   2. A bunch of updates to make use of these new ref returning functions.
   3. Refactoring some of the core peek/expect/consume methods to avoid 
unnecessary clones
   4. Replace all but one use of expect_keyword with expect_keyword_is.
   
   Results on my M1 MacBook Pro:
   
   ```
   # main:00abaf218
   
   ❯ cargo bench -- --save-baseline main
       Finished `bench` profile [optimized] target(s) in 0.11s
        Running benches/sqlparser_bench.rs 
(target/release/deps/sqlparser_bench-9f7a6e6e193d8f5c)
   sqlparser-rs parsing benchmark/sqlparser::select
                           time:   [4.2036 µs 4.2197 µs 4.2372 µs]
                           change: [-2.4618% -2.1421% -1.8071%] (p = 0.00 < 
0.05)
                           Performance has improved.
   Found 9 outliers among 100 measurements (9.00%)
     6 (6.00%) high mild
     3 (3.00%) high severe
   Benchmarking sqlparser-rs parsing benchmark/sqlparser::with_select: 
Collecting 100 samples in estimated 5.0715 s (278k iteratio
   sqlparser-rs parsing benchmark/sqlparser::with_select
                           time:   [18.360 µs 18.425 µs 18.486 µs]
                           change: [-5.3763% -2.5663% -0.8662%] (p = 0.02 < 
0.05)
                           Change within noise threshold.
   
   # reduce-token-cloning:1ffa2aa4
   
   ❯ cargo bench -- --baseline main
      Compiling sqlparser v0.52.0 
(/Users/davisp/github/davisp/datafusion-sqlparser-rs)
      Compiling sqlparser_bench v0.1.0 
(/Users/davisp/github/davisp/datafusion-sqlparser-rs/sqlparser_bench)
       Finished `bench` profile [optimized] target(s) in 15.76s
        Running benches/sqlparser_bench.rs 
(target/release/deps/sqlparser_bench-9f7a6e6e193d8f5c)
   sqlparser-rs parsing benchmark/sqlparser::select
                           time:   [2.9006 µs 2.9020 µs 2.9034 µs]
                           change: [-31.254% -31.013% -30.769%] (p = 0.00 < 
0.05)
                           Performance has improved.
   Found 10 outliers among 100 measurements (10.00%)
     4 (4.00%) low mild
     2 (2.00%) high mild
     4 (4.00%) high severe
   Benchmarking sqlparser-rs parsing benchmark/sqlparser::with_select: 
Collecting 100 samples in estimated 5.0415 s (364k iteratio
   sqlparser-rs parsing benchmark/sqlparser::with_select
                           time:   [13.785 µs 13.813 µs 13.843 µs]
                           change: [-25.054% -24.778% -24.494%] (p = 0.00 < 
0.05)
                           Performance has improved.
   Found 2 outliers among 100 measurements (2.00%)
     2 (2.00%) high mild
   
   ```


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscr...@datafusion.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscr...@datafusion.apache.org
For additional commands, e-mail: github-h...@datafusion.apache.org

Reply via email to