Commit f4b7316
committed
perf: add marshalOutputPool for fast-path marshal buffer reuse
Add marshalOutputPool (sync.Pool) to recycle []byte slices returned by
the 10 type-specialized marshal functions (vectors and lists/sets).
The connection layer (executeQuery, executeBatch) returns these buffers
to the pool after the framer copies them via writeBytes.
Key changes:
- getMarshalOutput/putMarshalOutput: pool management with cap guard
- pooledMarshalType: identifies types using pooled marshal fast paths
- executeQuery: scan columns for poolable types, install defer before
marshal loop so buffers are returned even on mid-loop errors
- executeBatch: unconditional defer with pooledBufs collection, also
handles error-path cleanup correctly
- All 10 fast-path marshal functions use getMarshalOutput instead of
make([]byte, size)
- 9 new unit tests covering pool mechanics, round-trip reuse, and
pooledMarshalType with 25 type coverage subcases1 parent a7c78e2 commit f4b7316
3 files changed
+272
-10
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1678 | 1678 | | |
1679 | 1679 | | |
1680 | 1680 | | |
| 1681 | + | |
| 1682 | + | |
| 1683 | + | |
| 1684 | + | |
| 1685 | + | |
| 1686 | + | |
| 1687 | + | |
| 1688 | + | |
| 1689 | + | |
| 1690 | + | |
| 1691 | + | |
| 1692 | + | |
| 1693 | + | |
| 1694 | + | |
| 1695 | + | |
| 1696 | + | |
| 1697 | + | |
| 1698 | + | |
| 1699 | + | |
| 1700 | + | |
| 1701 | + | |
| 1702 | + | |
| 1703 | + | |
| 1704 | + | |
| 1705 | + | |
| 1706 | + | |
| 1707 | + | |
| 1708 | + | |
1681 | 1709 | | |
1682 | 1710 | | |
1683 | 1711 | | |
| |||
1866 | 1894 | | |
1867 | 1895 | | |
1868 | 1896 | | |
| 1897 | + | |
| 1898 | + | |
| 1899 | + | |
| 1900 | + | |
| 1901 | + | |
| 1902 | + | |
| 1903 | + | |
| 1904 | + | |
| 1905 | + | |
| 1906 | + | |
| 1907 | + | |
1869 | 1908 | | |
1870 | 1909 | | |
1871 | 1910 | | |
| |||
1907 | 1946 | | |
1908 | 1947 | | |
1909 | 1948 | | |
| 1949 | + | |
| 1950 | + | |
| 1951 | + | |
1910 | 1952 | | |
1911 | 1953 | | |
1912 | 1954 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
122 | 122 | | |
123 | 123 | | |
124 | 124 | | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
125 | 178 | | |
126 | 179 | | |
127 | 180 | | |
| |||
1329 | 1382 | | |
1330 | 1383 | | |
1331 | 1384 | | |
1332 | | - | |
| 1385 | + | |
1333 | 1386 | | |
1334 | 1387 | | |
1335 | 1388 | | |
| |||
1347 | 1400 | | |
1348 | 1401 | | |
1349 | 1402 | | |
1350 | | - | |
| 1403 | + | |
1351 | 1404 | | |
1352 | 1405 | | |
1353 | 1406 | | |
| |||
1365 | 1418 | | |
1366 | 1419 | | |
1367 | 1420 | | |
1368 | | - | |
| 1421 | + | |
1369 | 1422 | | |
1370 | 1423 | | |
1371 | 1424 | | |
| |||
1383 | 1436 | | |
1384 | 1437 | | |
1385 | 1438 | | |
1386 | | - | |
| 1439 | + | |
1387 | 1440 | | |
1388 | 1441 | | |
1389 | 1442 | | |
| |||
1403 | 1456 | | |
1404 | 1457 | | |
1405 | 1458 | | |
1406 | | - | |
| 1459 | + | |
1407 | 1460 | | |
1408 | 1461 | | |
1409 | 1462 | | |
| |||
1422 | 1475 | | |
1423 | 1476 | | |
1424 | 1477 | | |
1425 | | - | |
| 1478 | + | |
1426 | 1479 | | |
1427 | 1480 | | |
1428 | 1481 | | |
| |||
1615 | 1668 | | |
1616 | 1669 | | |
1617 | 1670 | | |
1618 | | - | |
| 1671 | + | |
1619 | 1672 | | |
1620 | 1673 | | |
1621 | 1674 | | |
| |||
1635 | 1688 | | |
1636 | 1689 | | |
1637 | 1690 | | |
1638 | | - | |
| 1691 | + | |
1639 | 1692 | | |
1640 | 1693 | | |
1641 | 1694 | | |
| |||
1655 | 1708 | | |
1656 | 1709 | | |
1657 | 1710 | | |
1658 | | - | |
| 1711 | + | |
1659 | 1712 | | |
1660 | 1713 | | |
1661 | 1714 | | |
| |||
1675 | 1728 | | |
1676 | 1729 | | |
1677 | 1730 | | |
1678 | | - | |
| 1731 | + | |
1679 | 1732 | | |
1680 | 1733 | | |
1681 | 1734 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
586 | 586 | | |
587 | 587 | | |
588 | 588 | | |
| 589 | + | |
| 590 | + | |
| 591 | + | |
| 592 | + | |
| 593 | + | |
| 594 | + | |
| 595 | + | |
| 596 | + | |
| 597 | + | |
| 598 | + | |
| 599 | + | |
| 600 | + | |
| 601 | + | |
| 602 | + | |
| 603 | + | |
| 604 | + | |
| 605 | + | |
| 606 | + | |
| 607 | + | |
| 608 | + | |
| 609 | + | |
| 610 | + | |
| 611 | + | |
| 612 | + | |
| 613 | + | |
| 614 | + | |
| 615 | + | |
| 616 | + | |
| 617 | + | |
| 618 | + | |
| 619 | + | |
| 620 | + | |
| 621 | + | |
| 622 | + | |
| 623 | + | |
| 624 | + | |
| 625 | + | |
| 626 | + | |
| 627 | + | |
| 628 | + | |
| 629 | + | |
| 630 | + | |
| 631 | + | |
| 632 | + | |
| 633 | + | |
| 634 | + | |
| 635 | + | |
| 636 | + | |
| 637 | + | |
| 638 | + | |
| 639 | + | |
| 640 | + | |
| 641 | + | |
| 642 | + | |
| 643 | + | |
| 644 | + | |
| 645 | + | |
| 646 | + | |
| 647 | + | |
| 648 | + | |
| 649 | + | |
| 650 | + | |
| 651 | + | |
| 652 | + | |
| 653 | + | |
| 654 | + | |
| 655 | + | |
| 656 | + | |
| 657 | + | |
| 658 | + | |
| 659 | + | |
| 660 | + | |
| 661 | + | |
| 662 | + | |
| 663 | + | |
| 664 | + | |
| 665 | + | |
| 666 | + | |
| 667 | + | |
| 668 | + | |
| 669 | + | |
| 670 | + | |
| 671 | + | |
| 672 | + | |
| 673 | + | |
| 674 | + | |
| 675 | + | |
| 676 | + | |
| 677 | + | |
| 678 | + | |
| 679 | + | |
| 680 | + | |
| 681 | + | |
| 682 | + | |
| 683 | + | |
| 684 | + | |
| 685 | + | |
| 686 | + | |
| 687 | + | |
| 688 | + | |
| 689 | + | |
| 690 | + | |
| 691 | + | |
| 692 | + | |
| 693 | + | |
| 694 | + | |
| 695 | + | |
| 696 | + | |
| 697 | + | |
| 698 | + | |
| 699 | + | |
| 700 | + | |
| 701 | + | |
| 702 | + | |
| 703 | + | |
| 704 | + | |
| 705 | + | |
| 706 | + | |
| 707 | + | |
| 708 | + | |
| 709 | + | |
| 710 | + | |
| 711 | + | |
| 712 | + | |
| 713 | + | |
| 714 | + | |
| 715 | + | |
| 716 | + | |
| 717 | + | |
| 718 | + | |
| 719 | + | |
| 720 | + | |
| 721 | + | |
| 722 | + | |
| 723 | + | |
| 724 | + | |
| 725 | + | |
| 726 | + | |
| 727 | + | |
| 728 | + | |
| 729 | + | |
| 730 | + | |
| 731 | + | |
| 732 | + | |
| 733 | + | |
| 734 | + | |
| 735 | + | |
| 736 | + | |
| 737 | + | |
| 738 | + | |
| 739 | + | |
| 740 | + | |
| 741 | + | |
| 742 | + | |
| 743 | + | |
| 744 | + | |
| 745 | + | |
| 746 | + | |
| 747 | + | |
| 748 | + | |
| 749 | + | |
| 750 | + | |
| 751 | + | |
| 752 | + | |
| 753 | + | |
| 754 | + | |
| 755 | + | |
0 commit comments