You save the before and after snapshots, run the tool, then reload and compare. The tool prunes the edges from the WeakMap to the table of ephemerons, leaving just the path to the value through the ephemeron key.
-
-
Prikaži ovu nit
-
A WeakMap often outlives the key which is makes it worse when a leaked key keeps other keys alive. For example in
@emberjs a leaked owned object references its owner which contains other keys in that WeakMap. Then finding the leaked key is like finding a needle in a haystack.Prikaži ovu nit -
If you don't know what an ephemeron it is an obscure CS term. I had to look it up when
@bmeurer first said it to me and even then I found most of what I googled overly verbose and confusing.Prikaži ovu nit -
An ephemeron is a key/value pair that is treated special by the GC, the GC can collect it when either the key or the ephemeron are weakly reachable. The value can only be traced during the mark phase when the GC can prove both the key and ephemeron are reachable.
Prikaži ovu nit -
The Wikipedia entry on ephemeron is terrible, the best description I've found is https://cs.brown.edu/courses/cs173/2008/Manual/reference/ephemerons.html …
Prikaži ovu nit
Kraj razgovora
Novi razgovor -
-
-
@sigurdschn added this functionality recently, which might help you wrt WeakMapspic.twitter.com/CIEFqvcjHD
-
The issue has more to do with the distance calculation and trying to find the root cause on a large heap snapshot. With a WeakMap, both paths are needed to retain but only one might be an accident and the other intentional. We need to find the accidental one.
- Još 2 druga odgovora
Novi razgovor -
-
- Kraj razgovora
Novi razgovor -
-
this appeared in my timeline at the exact right time!
Hvala. Twitter će to iskoristiti za poboljšanje vaše vremenske crte. PoništiPoništi
-
Čini se da učitavanje traje već neko vrijeme.
Twitter je možda preopterećen ili ima kratkotrajnih poteškoća u radu. Pokušajte ponovno ili potražite dodatne informacije u odjeljku Status Twittera.