`-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 <[email protected]> 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 -- [email protected] > To unsubscribe send an email to [email protected] > https://mail.python.org/mailman3/lists/python-ideas.python.org/ > Message archived at > https://mail.python.org/archives/list/[email protected]/message/GEISYQ5BXWGKT33RWF77EOSOMMMFUBUS/ > Code of Conduct: http://python.org/psf/codeofconduct/ -- Inada Naoki <[email protected]> _______________________________________________ Python-ideas mailing list -- [email protected] To unsubscribe send an email to [email protected] https://mail.python.org/mailman3/lists/python-ideas.python.org/ Message archived at https://mail.python.org/archives/list/[email protected]/message/FO3FOBAQDOUROEHZRF3SZHNSKVW364CE/ Code of Conduct: http://python.org/psf/codeofconduct/
