Branch data Line data Source code
1 : : /*[clinic input]
2 : : preserve
3 : : [clinic start generated code]*/
4 : :
5 : : PyDoc_STRVAR(_tracemalloc_is_tracing__doc__,
6 : : "is_tracing($module, /)\n"
7 : : "--\n"
8 : : "\n"
9 : : "Return True if the tracemalloc module is tracing Python memory allocations.");
10 : :
11 : : #define _TRACEMALLOC_IS_TRACING_METHODDEF \
12 : : {"is_tracing", (PyCFunction)_tracemalloc_is_tracing, METH_NOARGS, _tracemalloc_is_tracing__doc__},
13 : :
14 : : static PyObject *
15 : : _tracemalloc_is_tracing_impl(PyObject *module);
16 : :
17 : : static PyObject *
18 : 45 : _tracemalloc_is_tracing(PyObject *module, PyObject *Py_UNUSED(ignored))
19 : : {
20 : 45 : return _tracemalloc_is_tracing_impl(module);
21 : : }
22 : :
23 : : PyDoc_STRVAR(_tracemalloc_clear_traces__doc__,
24 : : "clear_traces($module, /)\n"
25 : : "--\n"
26 : : "\n"
27 : : "Clear traces of memory blocks allocated by Python.");
28 : :
29 : : #define _TRACEMALLOC_CLEAR_TRACES_METHODDEF \
30 : : {"clear_traces", (PyCFunction)_tracemalloc_clear_traces, METH_NOARGS, _tracemalloc_clear_traces__doc__},
31 : :
32 : : static PyObject *
33 : : _tracemalloc_clear_traces_impl(PyObject *module);
34 : :
35 : : static PyObject *
36 : 8 : _tracemalloc_clear_traces(PyObject *module, PyObject *Py_UNUSED(ignored))
37 : : {
38 : 8 : return _tracemalloc_clear_traces_impl(module);
39 : : }
40 : :
41 : : PyDoc_STRVAR(_tracemalloc__get_traces__doc__,
42 : : "_get_traces($module, /)\n"
43 : : "--\n"
44 : : "\n"
45 : : "Get traces of all memory blocks allocated by Python.\n"
46 : : "\n"
47 : : "Return a list of (size: int, traceback: tuple) tuples.\n"
48 : : "traceback is a tuple of (filename: str, lineno: int) tuples.\n"
49 : : "\n"
50 : : "Return an empty list if the tracemalloc module is disabled.");
51 : :
52 : : #define _TRACEMALLOC__GET_TRACES_METHODDEF \
53 : : {"_get_traces", (PyCFunction)_tracemalloc__get_traces, METH_NOARGS, _tracemalloc__get_traces__doc__},
54 : :
55 : : static PyObject *
56 : : _tracemalloc__get_traces_impl(PyObject *module);
57 : :
58 : : static PyObject *
59 : 9 : _tracemalloc__get_traces(PyObject *module, PyObject *Py_UNUSED(ignored))
60 : : {
61 : 9 : return _tracemalloc__get_traces_impl(module);
62 : : }
63 : :
64 : : PyDoc_STRVAR(_tracemalloc__get_object_traceback__doc__,
65 : : "_get_object_traceback($module, obj, /)\n"
66 : : "--\n"
67 : : "\n"
68 : : "Get the traceback where the Python object obj was allocated.\n"
69 : : "\n"
70 : : "Return a tuple of (filename: str, lineno: int) tuples.\n"
71 : : "Return None if the tracemalloc module is disabled or did not\n"
72 : : "trace the allocation of the object.");
73 : :
74 : : #define _TRACEMALLOC__GET_OBJECT_TRACEBACK_METHODDEF \
75 : : {"_get_object_traceback", (PyCFunction)_tracemalloc__get_object_traceback, METH_O, _tracemalloc__get_object_traceback__doc__},
76 : :
77 : : PyDoc_STRVAR(_tracemalloc_start__doc__,
78 : : "start($module, nframe=1, /)\n"
79 : : "--\n"
80 : : "\n"
81 : : "Start tracing Python memory allocations.\n"
82 : : "\n"
83 : : "Also set the maximum number of frames stored in the traceback of a\n"
84 : : "trace to nframe.");
85 : :
86 : : #define _TRACEMALLOC_START_METHODDEF \
87 : : {"start", _PyCFunction_CAST(_tracemalloc_start), METH_FASTCALL, _tracemalloc_start__doc__},
88 : :
89 : : static PyObject *
90 : : _tracemalloc_start_impl(PyObject *module, int nframe);
91 : :
92 : : static PyObject *
93 : 24 : _tracemalloc_start(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
94 : : {
95 : 24 : PyObject *return_value = NULL;
96 : 24 : int nframe = 1;
97 : :
98 [ + - - + : 24 : if (!_PyArg_CheckPositional("start", nargs, 0, 1)) {
- - ]
99 : 0 : goto exit;
100 : : }
101 [ + + ]: 24 : if (nargs < 1) {
102 : 4 : goto skip_optional;
103 : : }
104 : 20 : nframe = _PyLong_AsInt(args[0]);
105 [ + + + - ]: 20 : if (nframe == -1 && PyErr_Occurred()) {
106 : 0 : goto exit;
107 : : }
108 : 20 : skip_optional:
109 : 24 : return_value = _tracemalloc_start_impl(module, nframe);
110 : :
111 : 24 : exit:
112 : 24 : return return_value;
113 : : }
114 : :
115 : : PyDoc_STRVAR(_tracemalloc_stop__doc__,
116 : : "stop($module, /)\n"
117 : : "--\n"
118 : : "\n"
119 : : "Stop tracing Python memory allocations.\n"
120 : : "\n"
121 : : "Also clear traces of memory blocks allocated by Python.");
122 : :
123 : : #define _TRACEMALLOC_STOP_METHODDEF \
124 : : {"stop", (PyCFunction)_tracemalloc_stop, METH_NOARGS, _tracemalloc_stop__doc__},
125 : :
126 : : static PyObject *
127 : : _tracemalloc_stop_impl(PyObject *module);
128 : :
129 : : static PyObject *
130 : 29 : _tracemalloc_stop(PyObject *module, PyObject *Py_UNUSED(ignored))
131 : : {
132 : 29 : return _tracemalloc_stop_impl(module);
133 : : }
134 : :
135 : : PyDoc_STRVAR(_tracemalloc_get_traceback_limit__doc__,
136 : : "get_traceback_limit($module, /)\n"
137 : : "--\n"
138 : : "\n"
139 : : "Get the maximum number of frames stored in the traceback of a trace.\n"
140 : : "\n"
141 : : "By default, a trace of an allocated memory block only stores\n"
142 : : "the most recent frame: the limit is 1.");
143 : :
144 : : #define _TRACEMALLOC_GET_TRACEBACK_LIMIT_METHODDEF \
145 : : {"get_traceback_limit", (PyCFunction)_tracemalloc_get_traceback_limit, METH_NOARGS, _tracemalloc_get_traceback_limit__doc__},
146 : :
147 : : static PyObject *
148 : : _tracemalloc_get_traceback_limit_impl(PyObject *module);
149 : :
150 : : static PyObject *
151 : 1028 : _tracemalloc_get_traceback_limit(PyObject *module, PyObject *Py_UNUSED(ignored))
152 : : {
153 : 1028 : return _tracemalloc_get_traceback_limit_impl(module);
154 : : }
155 : :
156 : : PyDoc_STRVAR(_tracemalloc_get_tracemalloc_memory__doc__,
157 : : "get_tracemalloc_memory($module, /)\n"
158 : : "--\n"
159 : : "\n"
160 : : "Get the memory usage in bytes of the tracemalloc module.\n"
161 : : "\n"
162 : : "This memory is used internally to trace memory allocations.");
163 : :
164 : : #define _TRACEMALLOC_GET_TRACEMALLOC_MEMORY_METHODDEF \
165 : : {"get_tracemalloc_memory", (PyCFunction)_tracemalloc_get_tracemalloc_memory, METH_NOARGS, _tracemalloc_get_tracemalloc_memory__doc__},
166 : :
167 : : static PyObject *
168 : : _tracemalloc_get_tracemalloc_memory_impl(PyObject *module);
169 : :
170 : : static PyObject *
171 : 2 : _tracemalloc_get_tracemalloc_memory(PyObject *module, PyObject *Py_UNUSED(ignored))
172 : : {
173 : 2 : return _tracemalloc_get_tracemalloc_memory_impl(module);
174 : : }
175 : :
176 : : PyDoc_STRVAR(_tracemalloc_get_traced_memory__doc__,
177 : : "get_traced_memory($module, /)\n"
178 : : "--\n"
179 : : "\n"
180 : : "Get the current size and peak size of memory blocks traced by tracemalloc.\n"
181 : : "\n"
182 : : "Returns a tuple: (current: int, peak: int).");
183 : :
184 : : #define _TRACEMALLOC_GET_TRACED_MEMORY_METHODDEF \
185 : : {"get_traced_memory", (PyCFunction)_tracemalloc_get_traced_memory, METH_NOARGS, _tracemalloc_get_traced_memory__doc__},
186 : :
187 : : static PyObject *
188 : : _tracemalloc_get_traced_memory_impl(PyObject *module);
189 : :
190 : : static PyObject *
191 : 10 : _tracemalloc_get_traced_memory(PyObject *module, PyObject *Py_UNUSED(ignored))
192 : : {
193 : 10 : return _tracemalloc_get_traced_memory_impl(module);
194 : : }
195 : :
196 : : PyDoc_STRVAR(_tracemalloc_reset_peak__doc__,
197 : : "reset_peak($module, /)\n"
198 : : "--\n"
199 : : "\n"
200 : : "Set the peak size of memory blocks traced by tracemalloc to the current size.\n"
201 : : "\n"
202 : : "Do nothing if the tracemalloc module is not tracing memory allocations.");
203 : :
204 : : #define _TRACEMALLOC_RESET_PEAK_METHODDEF \
205 : : {"reset_peak", (PyCFunction)_tracemalloc_reset_peak, METH_NOARGS, _tracemalloc_reset_peak__doc__},
206 : :
207 : : static PyObject *
208 : : _tracemalloc_reset_peak_impl(PyObject *module);
209 : :
210 : : static PyObject *
211 : 1 : _tracemalloc_reset_peak(PyObject *module, PyObject *Py_UNUSED(ignored))
212 : : {
213 : 1 : return _tracemalloc_reset_peak_impl(module);
214 : : }
215 : : /*[clinic end generated code: output=2ae4fe05f1a340c9 input=a9049054013a1b77]*/
|