Skip to content

perf(indexing): optimize referenceinfo for memory

What does this MR do and why?

  • Makes reference names empty for Ruby as these are never used.
  • Boxes potentially empty fields to conserve memory for struct/enum inlining. This moves data to the heap, but does not have noticeable parsing time impact (it is actually even faster now). Saves ~10% of memory for all languages parsing.

Related Issues

[gkg][indexer] high memory utilization on gitla... (knowledge-graph#175)

Testing

Before:

image

After:

Screenshot_2025-10-02_at_7.51.04_PM

Performance Analysis

  • This merge request does not introduce any performance regression. If a performance regression is expected, explain why.
Edited by Bohdan Parkhomchuk

Merge request reports

Loading