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/IUCFYJNXUGEHYMFYKWB4LNW5YY6KZBEQ/ Code of Conduct: http://python.org/psf/codeofconduct/