tools icon indicating copy to clipboard operation
tools copied to clipboard

refactor(rome_formatter): Remove `next_index` from `Queue`

Open MichaReiser opened this issue 3 years ago • 4 comments

Summary

This refactor simplifies the Queue implementation by removing the next_index state and instead updating the slice to only contain the remaining items.

Test

cargo test

Performance

I don't expect this change to have any significant impact on performance. This is mainly a change to improve code readability

MichaReiser avatar Oct 13 '22 07:10 MichaReiser

Deploy Preview for rometools canceled.

Name Link
Latest commit 5f76952ac011a8e7328d954140f1d0d8bdac7263
Latest deploy log https://app.netlify.com/sites/rometools/deploys/635ba0e633fea600089a0a0f

netlify[bot] avatar Oct 13 '22 07:10 netlify[bot]

!bench_formatter

MichaReiser avatar Oct 13 '22 07:10 MichaReiser

Formatter Benchmark Results

group                                    main                                   pr
-----                                    ----                                   --
formatter/checker.ts                     1.02   381.8±19.18ms     6.8 MB/sec    1.00    375.3±4.25ms     6.9 MB/sec
formatter/compiler.js                    1.00    200.2±2.21ms     5.2 MB/sec    1.02    204.4±1.86ms     5.1 MB/sec
formatter/d3.min.js                      1.00    154.8±2.25ms  1733.5 KB/sec    1.02    157.8±1.81ms  1701.2 KB/sec
formatter/dojo.js                        1.00     10.2±0.07ms     6.8 MB/sec    1.01     10.3±0.04ms     6.7 MB/sec
formatter/ios.d.ts                       1.00    220.1±1.77ms     8.5 MB/sec    1.02    225.1±2.15ms     8.3 MB/sec
formatter/jquery.min.js                  1.00     41.8±0.59ms  2024.9 KB/sec    1.14     47.8±0.49ms  1770.6 KB/sec
formatter/math.js                        1.00    306.9±3.01ms     2.1 MB/sec    1.02    314.3±2.44ms     2.1 MB/sec
formatter/parser.ts                      1.00      6.8±0.03ms     7.1 MB/sec    1.02      7.0±0.02ms     7.0 MB/sec
formatter/pixi.min.js                    1.00    168.4±2.11ms     2.6 MB/sec    1.03    172.7±1.56ms     2.5 MB/sec
formatter/react-dom.production.min.js    1.00     48.9±0.55ms     2.4 MB/sec    1.03     50.2±0.57ms     2.3 MB/sec
formatter/react.production.min.js        1.00      2.4±0.01ms     2.6 MB/sec    1.02      2.4±0.01ms     2.5 MB/sec
formatter/router.ts                      1.00      5.7±0.03ms    10.8 MB/sec    1.02      5.8±0.06ms    10.6 MB/sec
formatter/tex-chtml-full.js              1.00    396.9±2.84ms     2.3 MB/sec    1.02    406.6±2.68ms     2.2 MB/sec
formatter/three.min.js                   1.00    201.9±1.66ms     2.9 MB/sec    1.01    204.8±1.83ms     2.9 MB/sec
formatter/typescript.js                  1.00   1382.8±8.00ms     6.9 MB/sec    1.02   1410.0±9.43ms     6.7 MB/sec
formatter/vue.global.prod.js             1.00     65.3±0.93ms  1889.3 KB/sec    1.02     66.8±1.43ms  1845.8 KB/sec

github-actions[bot] avatar Oct 13 '22 08:10 github-actions[bot]

This PR is stale because it has been open 14 days with no activity.

github-actions[bot] avatar Oct 27 '22 12:10 github-actions[bot]

!bench_formatter

MichaReiser avatar Oct 28 '22 09:10 MichaReiser

Formatter Benchmark Results

group                                    main                                   pr
-----                                    ----                                   --
formatter/checker.ts                     1.00   463.0±13.07ms     5.6 MB/sec    1.00    462.0±9.34ms     5.6 MB/sec
formatter/compiler.js                    1.00    247.1±7.19ms     4.2 MB/sec    1.05    258.4±2.92ms     4.1 MB/sec
formatter/d3.min.js                      1.00    192.4±6.77ms  1395.4 KB/sec    1.05    201.7±2.80ms  1330.5 KB/sec
formatter/dojo.js                        1.00     12.8±0.40ms     5.3 MB/sec    1.04     13.4±0.21ms     5.1 MB/sec
formatter/ios.d.ts                       1.00    277.9±8.23ms     6.7 MB/sec    1.02    283.3±7.60ms     6.6 MB/sec
formatter/jquery.min.js                  1.00     52.7±2.09ms  1606.7 KB/sec    1.00     52.8±2.45ms  1602.6 KB/sec
formatter/math.js                        1.00   384.9±10.22ms  1722.8 KB/sec    1.02    394.3±7.64ms  1681.5 KB/sec
formatter/parser.ts                      1.00      8.7±0.21ms     5.6 MB/sec    1.03      8.9±0.22ms     5.4 MB/sec
formatter/pixi.min.js                    1.00    213.2±5.80ms     2.1 MB/sec    1.03    220.2±2.08ms  2040.5 KB/sec
formatter/react-dom.production.min.js    1.00     63.9±1.41ms  1845.5 KB/sec    1.02     64.9±1.38ms  1817.2 KB/sec
formatter/react.production.min.js        1.00      3.0±0.09ms     2.0 MB/sec    1.03      3.1±0.09ms  2009.7 KB/sec
formatter/router.ts                      1.00      7.3±0.22ms     8.4 MB/sec    1.01      7.4±0.19ms     8.3 MB/sec
formatter/tex-chtml-full.js              1.00    501.0±8.35ms  1862.6 KB/sec    1.01    507.1±7.95ms  1840.1 KB/sec
formatter/three.min.js                   1.00    253.1±4.21ms     2.3 MB/sec    1.03    261.7±2.01ms     2.2 MB/sec
formatter/typescript.js                  1.00  1698.1±35.69ms     5.6 MB/sec    1.01  1710.5±33.00ms     5.6 MB/sec
formatter/vue.global.prod.js             1.00     80.4±2.85ms  1535.4 KB/sec    1.04     83.9±2.35ms  1470.6 KB/sec

github-actions[bot] avatar Oct 28 '22 10:10 github-actions[bot]

Surprisingly, this seems to be consistently slower.

MichaReiser avatar Oct 28 '22 10:10 MichaReiser