Hi there!
It might be more of the dev tools question than V8 question, but let me try it anyway...
So, I'm trying to better understand how scavenger goes about its business, or more precisely, what ends up in the young generation space and gets subsequently collected.
I'm working on a lib where I see non-negligible scavenging pauses (±4ms which is significant for my use-case). After poking here and there I've realized that I don't understand what _exactly_ ends up int the young generation space. Of course I _know_ what objects I'm creating myself but it seems that there is more memory allocated _somewhere_ that makes scavenging work kicking in.
I'm guess I'm trying to answer the following question: what is there on the young generation space when scavenger kicks in. Is there any way (even the most obscure tooling) to "see" those objects?
If not, I would have 2 "proxy" question:
- what happens (in terms of memory) when creating new DOM objects? Where are those allocated and what ends up on the young generation space (just a pointer? full DOM object?)
- is optimizing compiler generating any objects that end up on the young generation space and can trigger scavenging work?
Sorry if I'm totally confusing things here, but just starting to explore inner workings of memory allocation / young generation... Any guidance would be more than appreciated.
Cheers,
Pawel