I have used cPython to profile real world usage of 2.18.19 (fast) vs. 2.21.3 (slow), but I’d like to not share that info publicly in case it contains data that should not be shared publicly.
@shertel: How can I share this data with you or all the contributors in a non-public way?
Good news, I don’t think more data is necessary. Profiling data is what I used as the basis for my current draft, which wasn’t great since the cause wasn’t apparent from profiling data.
Yeah, seems like the plugin should probably be using json.loads(). I have no idea why it’s using self.loader.load there.
In terms of ansible-core, I am still investigating solutions and don’t have an update. Once I identify possible options I will discuss which the team prefers and update my draft. But anyone is welcome to take a stab at improving it, it doesn’t need to wait on me.
Hm, I see a large performance difference. When testing, I delete the cache, populate it, then run the command a second time to see how long it takes to read the cache. This reproducer isolating the cache behavior takes about a minute to read from the cache due to setting the cache with tagged data from self.loader. If I update it to not set the cache using tagged data from self.loader, reading from the cache takes <1 second.