`-X importtime=2` This is expert-only tool. So no need for verbose name.
On Sat, Feb 11, 2023 at 10:01 PM Noah Kim <noahb...@gmail.com> wrote: > > All, > > I'm writing to propose an adjacent interpreter flag to `-X importtime`: `-X > importcache` (open to alternative naming). > > While `-X importtime` is incredibly useful for analyzing module import times, > by design, it doesn't log anything if an imported module has already been > loaded. `-X importcache` would provide additional output for every module > that's already been loaded: > > ``` > >>> import uuid > import time: cached | cached | _io > import time: cached | cached | _io > import time: cached | cached | os > import time: cached | cached | sys > import time: cached | cached | enum > import time: cached | cached | _io > import time: cached | cached | _io > import time: cached | cached | collections > import time: cached | cached | os > import time: cached | cached | re > import time: cached | cached | sys > import time: cached | cached | functools > import time: cached | cached | itertools > import time: 151 | 151 | _wmi > import time: 18290 | 18440 | platform > import time: 372 | 372 | _uuid > import time: 10955 | 29766 | uuid > ``` > > In codebases with convoluted/poorly managed import graphs (and consequently, > workloads that suffer from long import times), the ability to record all > paths to an expensive dependency--not just the first-imported--can help > expedite refactoring (and help scale identification of this type of issue). > More generally, this flag would provide a more efficient path to tracking > runtime dependencies. > > As a proof of concept, I was able to hack this functionality into `-X > importtime` by adding a couple lines to `import_ensure_initialized` in > `Python/import.c` (hence the output above). A separate flag is probably > desirable to preserve backwards compatibility. > > Looking forward to your feedback, > Noah > > _______________________________________________ > Python-ideas mailing list -- python-ideas@python.org > To unsubscribe send an email to python-ideas-le...@python.org > https://mail.python.org/mailman3/lists/python-ideas.python.org/ > Message archived at > https://mail.python.org/archives/list/python-ideas@python.org/message/GEISYQ5BXWGKT33RWF77EOSOMMMFUBUS/ > Code of Conduct: http://python.org/psf/codeofconduct/ -- Inada Naoki <songofaca...@gmail.com> _______________________________________________ Python-ideas mailing list -- python-ideas@python.org To unsubscribe send an email to python-ideas-le...@python.org https://mail.python.org/mailman3/lists/python-ideas.python.org/ Message archived at https://mail.python.org/archives/list/python-ideas@python.org/message/FO3FOBAQDOUROEHZRF3SZHNSKVW364CE/ Code of Conduct: http://python.org/psf/codeofconduct/