Commit 352d65c
committed
Optimize hot paths for ~10% performance improvement
- Use \G regex anchor in parseSymbol/parseFootnoteRef to avoid
redundant strpos() validation (match anchored at offset)
- Replace uksort() with array manipulation for attribute ordering
in HtmlRenderer (faster id-first sorting)
- Add first-char switch in startsNewBlockSignificant() to avoid
running 6 regex patterns on every line check
Benchmark (medium 56KB document):
- Before: 20.68 ms
- After: 18.44 ms (~11% faster)1 parent 3aaed6d commit 352d65c
File tree
3 files changed
+57
-63
lines changed- src
- Parser
- Renderer
3 files changed
+57
-63
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2470 | 2470 | | |
2471 | 2471 | | |
2472 | 2472 | | |
| 2473 | + | |
| 2474 | + | |
| 2475 | + | |
| 2476 | + | |
| 2477 | + | |
2473 | 2478 | | |
2474 | | - | |
| 2479 | + | |
| 2480 | + | |
2475 | 2481 | | |
2476 | 2482 | | |
2477 | 2483 | | |
| |||
2497 | 2503 | | |
2498 | 2504 | | |
2499 | 2505 | | |
2500 | | - | |
2501 | | - | |
2502 | | - | |
2503 | | - | |
2504 | | - | |
2505 | | - | |
2506 | | - | |
2507 | | - | |
2508 | | - | |
2509 | | - | |
2510 | | - | |
2511 | | - | |
2512 | | - | |
2513 | | - | |
2514 | | - | |
2515 | | - | |
2516 | | - | |
2517 | | - | |
2518 | | - | |
| 2506 | + | |
| 2507 | + | |
| 2508 | + | |
| 2509 | + | |
| 2510 | + | |
| 2511 | + | |
| 2512 | + | |
| 2513 | + | |
| 2514 | + | |
| 2515 | + | |
| 2516 | + | |
| 2517 | + | |
| 2518 | + | |
| 2519 | + | |
2519 | 2520 | | |
2520 | | - | |
2521 | | - | |
2522 | | - | |
2523 | | - | |
| 2521 | + | |
| 2522 | + | |
| 2523 | + | |
| 2524 | + | |
| 2525 | + | |
| 2526 | + | |
| 2527 | + | |
| 2528 | + | |
| 2529 | + | |
| 2530 | + | |
| 2531 | + | |
| 2532 | + | |
| 2533 | + | |
| 2534 | + | |
| 2535 | + | |
| 2536 | + | |
| 2537 | + | |
| 2538 | + | |
| 2539 | + | |
2524 | 2540 | | |
2525 | | - | |
2526 | | - | |
2527 | | - | |
| 2541 | + | |
2528 | 2542 | | |
2529 | | - | |
2530 | | - | |
2531 | 2543 | | |
2532 | 2544 | | |
2533 | 2545 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1564 | 1564 | | |
1565 | 1565 | | |
1566 | 1566 | | |
1567 | | - | |
1568 | | - | |
1569 | | - | |
1570 | | - | |
1571 | | - | |
1572 | | - | |
| 1567 | + | |
| 1568 | + | |
1573 | 1569 | | |
1574 | 1570 | | |
1575 | 1571 | | |
| |||
1645 | 1641 | | |
1646 | 1642 | | |
1647 | 1643 | | |
1648 | | - | |
1649 | | - | |
1650 | | - | |
1651 | | - | |
1652 | | - | |
1653 | | - | |
| 1644 | + | |
| 1645 | + | |
1654 | 1646 | | |
1655 | 1647 | | |
1656 | 1648 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
399 | 399 | | |
400 | 400 | | |
401 | 401 | | |
402 | | - | |
403 | | - | |
404 | | - | |
405 | | - | |
406 | | - | |
407 | | - | |
408 | | - | |
409 | | - | |
410 | | - | |
411 | | - | |
412 | | - | |
| 402 | + | |
| 403 | + | |
| 404 | + | |
| 405 | + | |
| 406 | + | |
| 407 | + | |
413 | 408 | | |
414 | 409 | | |
415 | 410 | | |
| |||
835 | 830 | | |
836 | 831 | | |
837 | 832 | | |
838 | | - | |
839 | | - | |
840 | | - | |
841 | | - | |
842 | | - | |
843 | | - | |
844 | | - | |
845 | | - | |
846 | | - | |
847 | | - | |
848 | | - | |
| 833 | + | |
| 834 | + | |
| 835 | + | |
| 836 | + | |
| 837 | + | |
| 838 | + | |
849 | 839 | | |
850 | 840 | | |
851 | 841 | | |
| |||
0 commit comments