Open
Description
In 7.5.0, Root.load calls resolveAll. Foreach call to load or loadSync, it will resolve every type, resulting in O(n^2) performance where n is the number of input files.
This is a very large performance regression in workflows that have more than one entry point proto file. In my project, initialization is ~100x slower (from 300ms to 30s).
Additionally, the async version calls resolveAll twice, doubling the performance hit. It appears that one call is meant to happen in the sync version and the other in the async version, but the async version actually runs both calls.
The change was made here: b802c42#diff-45840cbec0137d0498a3dbcf38eba6a358e2b8bfd9f1eca20abdfc7b386d13b1R208
cc @sofisl
Metadata
Metadata
Assignees
Labels
No labels