On Wed, Feb 23, 2022 at 1:26 AM '[email protected]' via v8-dev < [email protected]> wrote:
> Hello all, > > An idea came up recently which I imagine some of you have probably already > considered at some point, so I'd love to hear any thoughts you have, or > summaries of past discussions you'd be willing to share. Or if this idea is > fundamentally infeasible, I'd love to hear that too. > > The scenario: we've been investigating a case where many open tabs all > embed the same cross-site iframe, and all of those iframes get put into the > same process due to the heuristics described in 899838 - Improve process > reuse policies - chromium > <https://bugs.chromium.org/p/chromium/issues/detail?id=899838>. Ignoring > for the moment whether those heuristics are optimal, the result is a single > Isolate with many NativeContexts, where each NativeContext loads mostly the > same scripts. > > The idea: could V8 share bytecode and/or Sparkplug code for functions in > those scripts? I know that TurboFan code is native context dependent, but > as far as I know, both bytecode and Sparkplug code are native context > independent. If V8 could avoid generating duplicates, then this scenario > would use substantially less memory, plus tabs after the first wouldn't > have to wait on tiering up to Sparkplug. > I think this already happens, at least to some extent. SharedFunctionInfos are shared between native contexts through the compilation cache <https://source.chromium.org/chromium/chromium/src/+/main:v8/src/objects/compilation-cache-table.h;l=90;drc=a2d4701bea545269ad3f5fe6e111adb65c46b8da>, and bytecode/baseline code hangs off the SFI <https://source.chromium.org/chromium/chromium/src/+/main:v8/src/objects/shared-function-info.h;l=340;drc=a2d4701bea545269ad3f5fe6e111adb65c46b8da>. It's not 100% reliable since the cache is aged. Is the cache not hit in your scenario? > > Thanks, > Seth > > -- > -- > v8-dev mailing list > [email protected] > http://groups.google.com/group/v8-dev > --- > You received this message because you are subscribed to the Google Groups > "v8-dev" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/v8-dev/bbeb2a47-a26c-4623-81a5-7cad2c0dfec1n%40googlegroups.com > <https://groups.google.com/d/msgid/v8-dev/bbeb2a47-a26c-4623-81a5-7cad2c0dfec1n%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- -- v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev --- You received this message because you are subscribed to the Google Groups "v8-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/v8-dev/CAH3p7oMvcwuRuNCjWS6n7GiQwLn5%2B_AMk-OUBUs9K1u%2Bob-gqQ%40mail.gmail.com.
