Linear memory trending up across warm requests without rising every single time.
The complement of memoryHighwaterRising, not a replacement for it. That check demands a
strictly monotonic rise over the last four samples, which emscripten's geometric growth makes a
reasonable shape to demand -- but it also means one plateau or one dip inside the window hides a
real leak completely, and the lazy FS converges on the union of every route ever served, which
climbs in steps rather than smoothly.
So this one fits the whole ring and asks whether the rise beats the wobble, and it returns null
whenever the strict check already fired: two findings for one leak would escalate the breaker
twice as fast for no extra information.
Acts at the next quiet moment, never the next request. Recycling the interpreter mid-traffic
trades a leak nobody has noticed for a 4,019 ms boot every waiting request pays for, so the
severity is warn: initialRung('warn') is observe, which schedules rather than
resets.
Linear memory trending up across warm requests without rising every single time.
The complement of
memoryHighwaterRising, not a replacement for it. That check demands a strictly monotonic rise over the last four samples, which emscripten's geometric growth makes a reasonable shape to demand -- but it also means one plateau or one dip inside the window hides a real leak completely, and the lazy FS converges on the union of every route ever served, which climbs in steps rather than smoothly.So this one fits the whole ring and asks whether the rise beats the wobble, and it returns null whenever the strict check already fired: two findings for one leak would escalate the breaker twice as fast for no extra information.
Acts at the next quiet moment, never the next request. Recycling the interpreter mid-traffic trades a leak nobody has noticed for a 4,019 ms boot every waiting request pays for, so the severity is
warn:initialRung('warn')isobserve, which schedules rather than resets.