I really like this approach!
> On Feb 14, 2023, at 9:04 PM, Inada Naoki <songofacandy@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 <noahbkim@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-leave@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 <songofacandy@gmail.com>