Commit 20fe70e
authored
perf: more interning (#7636)
This PR adds interning of strings representing common integer values,
which greatly speeds up "to string" operations on numbers, and updates
some built-ins commonly used for this to make use of interned values
where possible.
This is "light" version of a previous PR that did this more aggressively,
but also came with more caveats. Importantly, interning of new strings is
now never done at "runtime", but only allowed at init time. The API for
interning is marked experimental and should not relied upon by anyone
who expects a stable API.
Signed-off-by: Anders Eknert <[email protected]>1 parent aa81e31 commit 20fe70e
File tree
37 files changed
+649
-334
lines changed- internal
- edittree
- future
- runtime
- v1
- ast
- debug
- format
- plugins/logs
- resolver/wasm
- storage/inmem
- topdown
- builtins
37 files changed
+649
-334
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
723 | 723 | | |
724 | 724 | | |
725 | 725 | | |
| 726 | + | |
| 727 | + | |
726 | 728 | | |
727 | 729 | | |
728 | | - | |
| 730 | + | |
729 | 731 | | |
730 | | - | |
| 732 | + | |
731 | 733 | | |
732 | 734 | | |
733 | 735 | | |
734 | | - | |
| 736 | + | |
735 | 737 | | |
736 | 738 | | |
737 | 739 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
22 | | - | |
23 | | - | |
24 | 22 | | |
25 | 23 | | |
26 | 24 | | |
27 | 25 | | |
28 | 26 | | |
29 | | - | |
| 27 | + | |
30 | 28 | | |
31 | 29 | | |
32 | 30 | | |
33 | 31 | | |
34 | 32 | | |
35 | 33 | | |
36 | 34 | | |
37 | | - | |
| 35 | + | |
38 | 36 | | |
39 | 37 | | |
40 | 38 | | |
41 | 39 | | |
42 | 40 | | |
43 | 41 | | |
44 | 42 | | |
45 | | - | |
| 43 | + | |
46 | 44 | | |
47 | 45 | | |
48 | 46 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
24 | | - | |
25 | | - | |
26 | | - | |
27 | | - | |
28 | | - | |
29 | | - | |
30 | | - | |
31 | | - | |
32 | | - | |
33 | 24 | | |
34 | 25 | | |
35 | 26 | | |
| |||
47 | 38 | | |
48 | 39 | | |
49 | 40 | | |
50 | | - | |
| 41 | + | |
51 | 42 | | |
52 | 43 | | |
53 | 44 | | |
| |||
61 | 52 | | |
62 | 53 | | |
63 | 54 | | |
64 | | - | |
65 | | - | |
66 | | - | |
67 | | - | |
68 | | - | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
69 | 60 | | |
70 | 61 | | |
71 | 62 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
26 | | - | |
27 | | - | |
28 | | - | |
29 | | - | |
30 | | - | |
31 | | - | |
32 | | - | |
33 | | - | |
34 | | - | |
35 | | - | |
36 | | - | |
37 | | - | |
38 | | - | |
39 | | - | |
40 | | - | |
41 | | - | |
42 | | - | |
43 | | - | |
44 | | - | |
45 | | - | |
46 | | - | |
47 | 26 | | |
48 | 27 | | |
49 | 28 | | |
| |||
444 | 423 | | |
445 | 424 | | |
446 | 425 | | |
447 | | - | |
| 426 | + | |
448 | 427 | | |
449 | | - | |
| 428 | + | |
450 | 429 | | |
451 | | - | |
| 430 | + | |
452 | 431 | | |
453 | | - | |
| 432 | + | |
454 | 433 | | |
455 | | - | |
| 434 | + | |
456 | 435 | | |
457 | 436 | | |
458 | 437 | | |
459 | 438 | | |
460 | | - | |
| 439 | + | |
461 | 440 | | |
462 | 441 | | |
463 | 442 | | |
464 | | - | |
| 443 | + | |
465 | 444 | | |
466 | 445 | | |
467 | 446 | | |
468 | | - | |
| 447 | + | |
469 | 448 | | |
470 | 449 | | |
471 | 450 | | |
472 | 451 | | |
473 | 452 | | |
474 | 453 | | |
475 | 454 | | |
476 | | - | |
| 455 | + | |
477 | 456 | | |
478 | 457 | | |
479 | 458 | | |
480 | 459 | | |
481 | 460 | | |
482 | | - | |
| 461 | + | |
483 | 462 | | |
484 | | - | |
| 463 | + | |
485 | 464 | | |
486 | 465 | | |
487 | 466 | | |
488 | | - | |
| 467 | + | |
489 | 468 | | |
490 | 469 | | |
491 | 470 | | |
492 | 471 | | |
493 | 472 | | |
494 | 473 | | |
495 | 474 | | |
496 | | - | |
| 475 | + | |
497 | 476 | | |
498 | 477 | | |
499 | | - | |
| 478 | + | |
500 | 479 | | |
501 | 480 | | |
502 | 481 | | |
503 | | - | |
| 482 | + | |
504 | 483 | | |
505 | 484 | | |
506 | 485 | | |
507 | 486 | | |
508 | 487 | | |
509 | 488 | | |
510 | 489 | | |
511 | | - | |
| 490 | + | |
512 | 491 | | |
513 | 492 | | |
514 | | - | |
| 493 | + | |
515 | 494 | | |
516 | 495 | | |
517 | 496 | | |
518 | 497 | | |
519 | 498 | | |
520 | 499 | | |
521 | | - | |
| 500 | + | |
522 | 501 | | |
523 | 502 | | |
524 | 503 | | |
525 | | - | |
| 504 | + | |
526 | 505 | | |
527 | 506 | | |
528 | 507 | | |
529 | 508 | | |
530 | 509 | | |
531 | 510 | | |
532 | 511 | | |
533 | | - | |
| 512 | + | |
534 | 513 | | |
535 | 514 | | |
536 | 515 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
23 | 30 | | |
24 | 31 | | |
25 | 32 | | |
| |||
3388 | 3395 | | |
3389 | 3396 | | |
3390 | 3397 | | |
3391 | | - | |
| 3398 | + | |
3392 | 3399 | | |
3393 | 3400 | | |
3394 | 3401 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
964 | 964 | | |
965 | 965 | | |
966 | 966 | | |
967 | | - | |
968 | | - | |
969 | | - | |
970 | | - | |
971 | | - | |
972 | | - | |
| 967 | + | |
973 | 968 | | |
974 | 969 | | |
975 | 970 | | |
| |||
2534 | 2529 | | |
2535 | 2530 | | |
2536 | 2531 | | |
2537 | | - | |
2538 | | - | |
2539 | | - | |
2540 | | - | |
2541 | | - | |
| 2532 | + | |
| 2533 | + | |
| 2534 | + | |
2542 | 2535 | | |
2543 | 2536 | | |
2544 | 2537 | | |
2545 | 2538 | | |
2546 | 2539 | | |
2547 | | - | |
| 2540 | + | |
2548 | 2541 | | |
2549 | 2542 | | |
2550 | 2543 | | |
| |||
4642 | 4635 | | |
4643 | 4636 | | |
4644 | 4637 | | |
| 4638 | + | |
| 4639 | + | |
4645 | 4640 | | |
4646 | 4641 | | |
4647 | 4642 | | |
| |||
4656 | 4651 | | |
4657 | 4652 | | |
4658 | 4653 | | |
4659 | | - | |
4660 | 4654 | | |
4661 | 4655 | | |
4662 | 4656 | | |
| |||
0 commit comments