Commit 6b2b68a
Add sys.getallocatedbytes
Summary:
Port `sys.getallocatedbytes()` from 3.12 (added to 3.12 in D60045182), with a few changes
- `mimalloc` is new in 3.14 so check the allocations from there
- General FT support (in `mimalloc` as well as stop the world in `get_global_allocated_bytes()`)
- Instead of adding a relaxed add to pyatomic, using the helper function `raw_atomic_add_relaxed()` which calls `__ATOMIC_RELAXED` directly. This keeps the patch more maintainable. Note that for MSVC this is a sequential consistent atomic add (which is the same as a relaxed atomic add on x86, but not on ARM - the MSVC/ARM64 build isn't supported by CPython so this should be fine).
**How the method works:**
Sum up the three places of memory allocation across all interpreter states by:
- Adding the `raw_allocated_bytes` value - direct memory allocations using `_Py_Raw*` methods are tracked here
- Add the sum of the sizes of all the blocks used by `mimalloc` as well as its abandoned pool
- Add the sum of the sizes of all pools in all active arenas (`pymalloc`'s allocations)
**Justification for adding the method to 3.14:** `sys.getallocatedbytes()` is used in Imports Monitor for memory measurement
Reviewed By: kddnewton
Differential Revision: D112405580
fbshipit-source-id: e284ade7440de2a22d389ecdd88813dc9f830b521 parent ee58218 commit 6b2b68a
5 files changed
Lines changed: 274 additions & 3 deletions
File tree
- Include/internal
- Lib/test
- Objects
- Python
- clinic
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
682 | 682 | | |
683 | 683 | | |
684 | 684 | | |
| 685 | + | |
685 | 686 | | |
686 | 687 | | |
687 | 688 | | |
| 689 | + | |
688 | 690 | | |
689 | 691 | | |
690 | 692 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1154 | 1154 | | |
1155 | 1155 | | |
1156 | 1156 | | |
| 1157 | + | |
| 1158 | + | |
| 1159 | + | |
| 1160 | + | |
| 1161 | + | |
| 1162 | + | |
| 1163 | + | |
| 1164 | + | |
| 1165 | + | |
| 1166 | + | |
| 1167 | + | |
| 1168 | + | |
| 1169 | + | |
| 1170 | + | |
| 1171 | + | |
| 1172 | + | |
| 1173 | + | |
| 1174 | + | |
| 1175 | + | |
| 1176 | + | |
| 1177 | + | |
| 1178 | + | |
| 1179 | + | |
| 1180 | + | |
| 1181 | + | |
| 1182 | + | |
| 1183 | + | |
| 1184 | + | |
| 1185 | + | |
| 1186 | + | |
1157 | 1187 | | |
1158 | 1188 | | |
1159 | 1189 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
15 | 20 | | |
16 | 21 | | |
17 | 22 | | |
| |||
38 | 43 | | |
39 | 44 | | |
40 | 45 | | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
41 | 76 | | |
42 | 77 | | |
43 | 78 | | |
| |||
60 | 95 | | |
61 | 96 | | |
62 | 97 | | |
63 | | - | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
64 | 103 | | |
65 | 104 | | |
66 | 105 | | |
| |||
74 | 113 | | |
75 | 114 | | |
76 | 115 | | |
77 | | - | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
78 | 121 | | |
79 | 122 | | |
80 | 123 | | |
81 | 124 | | |
82 | 125 | | |
83 | 126 | | |
84 | 127 | | |
85 | | - | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
86 | 135 | | |
87 | 136 | | |
88 | 137 | | |
89 | 138 | | |
90 | 139 | | |
| 140 | + | |
91 | 141 | | |
| 142 | + | |
92 | 143 | | |
93 | 144 | | |
94 | 145 | | |
| |||
1592 | 1643 | | |
1593 | 1644 | | |
1594 | 1645 | | |
| 1646 | + | |
| 1647 | + | |
| 1648 | + | |
| 1649 | + | |
| 1650 | + | |
| 1651 | + | |
| 1652 | + | |
| 1653 | + | |
1595 | 1654 | | |
1596 | 1655 | | |
1597 | 1656 | | |
| |||
1617 | 1676 | | |
1618 | 1677 | | |
1619 | 1678 | | |
| 1679 | + | |
| 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 | + | |
1620 | 1705 | | |
1621 | 1706 | | |
1622 | 1707 | | |
| |||
1662 | 1747 | | |
1663 | 1748 | | |
1664 | 1749 | | |
| 1750 | + | |
| 1751 | + | |
| 1752 | + | |
| 1753 | + | |
| 1754 | + | |
| 1755 | + | |
| 1756 | + | |
| 1757 | + | |
| 1758 | + | |
| 1759 | + | |
| 1760 | + | |
| 1761 | + | |
| 1762 | + | |
| 1763 | + | |
| 1764 | + | |
| 1765 | + | |
| 1766 | + | |
| 1767 | + | |
| 1768 | + | |
| 1769 | + | |
| 1770 | + | |
| 1771 | + | |
| 1772 | + | |
| 1773 | + | |
| 1774 | + | |
| 1775 | + | |
| 1776 | + | |
| 1777 | + | |
| 1778 | + | |
| 1779 | + | |
| 1780 | + | |
| 1781 | + | |
| 1782 | + | |
| 1783 | + | |
| 1784 | + | |
| 1785 | + | |
| 1786 | + | |
| 1787 | + | |
| 1788 | + | |
| 1789 | + | |
| 1790 | + | |
| 1791 | + | |
| 1792 | + | |
1665 | 1793 | | |
1666 | 1794 | | |
1667 | 1795 | | |
| |||
1763 | 1891 | | |
1764 | 1892 | | |
1765 | 1893 | | |
| 1894 | + | |
| 1895 | + | |
| 1896 | + | |
| 1897 | + | |
| 1898 | + | |
| 1899 | + | |
| 1900 | + | |
| 1901 | + | |
| 1902 | + | |
| 1903 | + | |
| 1904 | + | |
| 1905 | + | |
| 1906 | + | |
| 1907 | + | |
| 1908 | + | |
| 1909 | + | |
| 1910 | + | |
| 1911 | + | |
| 1912 | + | |
| 1913 | + | |
| 1914 | + | |
| 1915 | + | |
| 1916 | + | |
| 1917 | + | |
| 1918 | + | |
| 1919 | + | |
| 1920 | + | |
| 1921 | + | |
| 1922 | + | |
| 1923 | + | |
| 1924 | + | |
| 1925 | + | |
| 1926 | + | |
| 1927 | + | |
| 1928 | + | |
| 1929 | + | |
| 1930 | + | |
| 1931 | + | |
| 1932 | + | |
| 1933 | + | |
| 1934 | + | |
| 1935 | + | |
| 1936 | + | |
| 1937 | + | |
| 1938 | + | |
| 1939 | + | |
| 1940 | + | |
| 1941 | + | |
| 1942 | + | |
| 1943 | + | |
| 1944 | + | |
| 1945 | + | |
| 1946 | + | |
| 1947 | + | |
| 1948 | + | |
1766 | 1949 | | |
1767 | 1950 | | |
1768 | 1951 | | |
| |||
2730 | 2913 | | |
2731 | 2914 | | |
2732 | 2915 | | |
| 2916 | + | |
| 2917 | + | |
| 2918 | + | |
| 2919 | + | |
| 2920 | + | |
| 2921 | + | |
| 2922 | + | |
| 2923 | + | |
| 2924 | + | |
| 2925 | + | |
| 2926 | + | |
| 2927 | + | |
2733 | 2928 | | |
2734 | 2929 | | |
2735 | 2930 | | |
| |||
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2057 | 2057 | | |
2058 | 2058 | | |
2059 | 2059 | | |
| 2060 | + | |
| 2061 | + | |
| 2062 | + | |
| 2063 | + | |
| 2064 | + | |
| 2065 | + | |
| 2066 | + | |
| 2067 | + | |
| 2068 | + | |
| 2069 | + | |
| 2070 | + | |
| 2071 | + | |
| 2072 | + | |
| 2073 | + | |
| 2074 | + | |
2060 | 2075 | | |
2061 | 2076 | | |
2062 | 2077 | | |
| |||
2839 | 2854 | | |
2840 | 2855 | | |
2841 | 2856 | | |
| 2857 | + | |
2842 | 2858 | | |
2843 | 2859 | | |
2844 | 2860 | | |
| |||
0 commit comments