Skip to content

feat: report heap by method #99

Description

@lukecotter

Why

Heap is the one governor limit with no attribution. Only the single final heapSize figure survives a parse, so "reduce heap" is advice a caller cannot act on — there is nothing to point at.

The standalone parser measures heap on every node, self and total, in three distinct ways:

  • heapPeak — maximum live heap. The governor-comparable one.
  • heapAllocated — signed net, so an allocate-then-free nets out.
  • heapGross — positive-only churn, that is, garbage-collection pressure.

Do

Report all three. Net alone hides churn, and churn alone overstates the cost, so one number cannot replace the set.

Two routes for the shape:

  1. Add heap columns to the slowest-methods table.
  2. Add a sortBy: "selfTime" | "heap" parameter, so one table can be ranked either way.

Three more columns on a 13-column table will breach TOKEN_BUDGET for analyze_apex_log_performance/governor-heavy, which is 290. So route 1 is a deliberate budget edit recorded in the changelog. Route 2 looks cheaper: a few definition tokens, and no response tokens at all for callers who do not ask.

Effort

S–M. Blocked on #97.

Shares a release with #63 and #64, which reshape and rename the same table. Choose the route once, alongside those, rather than twice.

Supersedes the last bullet of #62, "once the parser gains granular heap tracking, add the top heap-consuming methods underneath".

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions