GARDEN

Tag: Android

Posts tagged “Android”

1 posts ·

10-19

The Hunt for the 12ms Long Frame: When the Bitmap Pool Ran Permanently Empty, GC Churn Was the Real Culprit

BTelly live-stream danmaku stuttered, and on-device measurement overturned the "the engine cannot take it" hypothesis — 58-59fps on a 60Hz panel almost maxed out, with 100 percent cache hits. The real blemish was a 12ms long frame every ten seconds, and pool=0.0/25MB in the log was the hard evidence. Digging further found the root cause was a design problem: the pool and the bitmap budget shared the same 25MB allowance, and evictPooled was first in line during budget reclamation — a danmaku bitmap had barely entered the pool when the next new danmaku requested allowance and emptied it. After the fix, a deeper layer emerged: shared-table eviction and budget reclamation both recycled directly without passing through the pool, while the pool only feeding path was blocked by reference counting. A self-negating fix later, a coherent strategy was finally found.

Read more ›
← Digital Garden