Hi all, I've reposted this to the python.org discussion board with a followup on `-X importtime=2`. I think it'll be more accessible if we move the conversation there.
Here's a link: https://discuss.python.org/t/x-importtrace-to-supplement-x-importtime-for-loaded-modules/23882/3 On Tue, Feb 14, 2023 at 9:45 PM Noah Kim <noahb...@gmail.com> wrote: > I really like this approach! > > > On Feb 14, 2023, at 9:04 PM, Inada Naoki <songofaca...@gmail.com> wrote: > > > > `-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/O5NJDHFMJ54ZWJEDVB3MBLCPQSIDIH45/ Code of Conduct: http://python.org/psf/codeofconduct/