EngFlow/bazel_invocation_analyzer

Reduce memory requirements of running tool

Closed this issue · 1 comments

Problem

Especially when analyzing larger Bazel profiles, the tool requires a lot of memory. This may lead to OOMs.

Preferred solution

Investigate what consumes the most memory and look into implementing it more performantly.

Additional information

When analyzing a Bazel profile that is gzipped 34 MB and unzipped 35 MB, running the analyzer consumed about 4 GB.

The main culprit seems to be how we read the Bazel profile. We read the whole profile as a JsonObject. Instead, we should consider reading it in a stream.