Skip to content

Commit b081980

Browse files
committed
Print importtime header before first cached import
1 parent 58d07be commit b081980

File tree

1 file changed

+15
-11
lines changed

1 file changed

+15
-11
lines changed

Python/import.c

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,15 @@ static struct _inittab *inittab_copy = NULL;
103103
#define FIND_AND_LOAD(interp) \
104104
(interp)->imports.find_and_load
105105

106+
#define _IMPORT_TIME_HEADER(interp) \
107+
do { \
108+
if (FIND_AND_LOAD((interp)).header) { \
109+
fputs("import time: self [us] | cumulative | imported package\n", \
110+
stderr); \
111+
FIND_AND_LOAD((interp)).header = 0; \
112+
} \
113+
} while (0)
114+
106115

107116
/*******************/
108117
/* the import lock */
@@ -262,13 +271,14 @@ import_ensure_initialized(PyInterpreterState *interp, PyObject *mod, PyObject *n
262271
Py_DECREF(value);
263272

264273
done:
265-
/* When -Ximporttime=2, print an import time entry even if an
266-
* imported module has already been loaded.
274+
/* When -X importtime=2, print an import time entry even if an
275+
imported module has already been loaded.
267276
*/
268-
if (_PyInterpreterState_GetConfig(interp)->import_time >= 2) {
277+
if (_PyInterpreterState_GetConfig(interp)->import_time == 2) {
278+
_IMPORT_TIME_HEADER(interp);
269279
#define import_level FIND_AND_LOAD(interp).import_level
270280
fprintf(stderr, "import time: cached | cached | %*s\n",
271-
import_level*2, PyUnicode_AsUTF8(name));
281+
import_level*2, PyUnicode_AsUTF8(name));
272282
#undef import_level
273283
}
274284

@@ -3702,13 +3712,7 @@ import_find_and_load(PyThreadState *tstate, PyObject *abs_name)
37023712
* _PyDict_GetItemIdWithError().
37033713
*/
37043714
if (import_time) {
3705-
#define header FIND_AND_LOAD(interp).header
3706-
if (header) {
3707-
fputs("import time: self [us] | cumulative | imported package\n",
3708-
stderr);
3709-
header = 0;
3710-
}
3711-
#undef header
3715+
_IMPORT_TIME_HEADER(interp);
37123716

37133717
import_level++;
37143718
// ignore error: don't block import if reading the clock fails

0 commit comments

Comments
 (0)