Skip to content
This repository has been archived by the owner on Aug 31, 2023. It is now read-only.

perf(rowan): Speedup next_token and prev_token implementations #2612

Merged
merged 1 commit into from
May 25, 2022

Commits on May 25, 2022

  1. perf(rowan): Speedup next_token and prev_token implementations

    Hand write the traversal of `next_token` and `prev_token` to speedup the traversal.
    
    The new comment formatting will make heavy use of these two methods which is why it's important that they are fast.
    
    ```
    ❯ critcmp main fused
    group                                    PR                                  main
    -----                                    -----                                  ----
    formatter/checker.ts                     1.00    239.2±1.22ms    10.9 MB/sec    1.01    240.8±3.49ms    10.8 MB/sec
    formatter/compiler.js                    1.00    139.6±3.00ms     7.5 MB/sec    1.04    145.4±1.99ms     7.2 MB/sec
    formatter/d3.min.js                      1.00    104.7±1.04ms     2.5 MB/sec    1.04    108.9±2.69ms     2.4 MB/sec
    formatter/dojo.js                        1.00      7.8±0.11ms     8.8 MB/sec    1.02      7.9±0.01ms     8.6 MB/sec
    formatter/ios.d.ts                       1.00    189.0±3.27ms     9.9 MB/sec    1.01    190.0±1.41ms     9.8 MB/sec
    formatter/jquery.min.js                  1.00     29.5±0.43ms     2.8 MB/sec    1.00     29.4±0.23ms     2.8 MB/sec
    formatter/math.js                        1.00    225.6±0.95ms     2.9 MB/sec    1.04    235.4±4.01ms     2.8 MB/sec
    formatter/parser.ts                      1.02      5.6±0.01ms     8.7 MB/sec    1.00      5.5±0.09ms     8.8 MB/sec
    formatter/pixi.min.js                    1.00    120.9±1.96ms     3.6 MB/sec    1.12   135.3±19.62ms     3.2 MB/sec
    formatter/react-dom.production.min.js    1.00     35.4±0.54ms     3.2 MB/sec    1.05     37.3±0.39ms     3.1 MB/sec
    formatter/react.production.min.js        1.00   1815.8±3.00µs     3.4 MB/sec    1.01  1833.6±29.27µs     3.4 MB/sec
    formatter/router.ts                      1.01      4.1±0.01ms    14.8 MB/sec    1.00      4.1±0.08ms    15.0 MB/sec
    formatter/tex-chtml-full.js              1.00    285.8±1.28ms     3.2 MB/sec    1.04    297.2±1.77ms     3.1 MB/sec
    formatter/three.min.js                   1.00    142.0±1.02ms     4.1 MB/sec    1.05    148.7±4.29ms     3.9 MB/sec
    formatter/typescript.js                  1.00   957.2±94.68ms     9.9 MB/sec    1.01   967.2±20.72ms     9.8 MB/sec
    formatter/vue.global.prod.js             1.00     47.7±0.19ms     2.5 MB/sec    1.02     48.7±0.39ms     2.5 MB/sec
    ```
    MichaReiser committed May 25, 2022
    Configuration menu
    Copy the full SHA
    f9fce38 View commit details
    Browse the repository at this point in the history