Awesome news! On Mon, Sep 20, 2021 at 1:54 PM Michael Lippautz <[email protected]> wrote:
> Hey everyone - > > The library allows *Oilpan* (previously known as Blink's garbage > collector) *to be used as a stand-alone garbage collector for **C++** or > together with V8 where it is part of the C++/JavaScript unified heap*. > Both scenarios are already covered with the usage in Blink (together with > V8) and PDFium (*new stand-alone C++ collector*; not yet launched). The > flag switching from Oilpan in Blink to Oilpan library has been flipped for > *M94*. > > The new library offers a stable API surface > <https://chromium.googlesource.com/v8/v8.git/+/refs/heads/main/include/cppgc> > with > code comments and examples in code (if we forgot something, please file a > bug) that follows V8's general API stability process > <https://v8.dev/docs/api>. This allows fast iteration on implementation > details and at the same time avoids frequent breakage. The library also > provides the foundation for new garbage collection optimizations in the > Blink setting together with JavaScript as it allows for better integration > with V8 behind the scenes. > > Some other highlights: > - Uses IWYU (API and internally) to avoid pulling in large parts of the > heap for e.g. just using a managed reference type; > - Unit tests > <https://source.chromium.org/chromium/chromium/src/+/main:v8/test/unittests/heap/cppgc/> > for each individual component in the C++ garbage collector; > - Test target and a garbage collection playground that builds within > seconds; > - More correctness checks that already found issues in existing code; > - Better tooling around DevTools heap snapshot and more accurate > accounting in tracing's MemoryInfra > <https://chromium.googlesource.com/chromium/src/+/HEAD/docs/memory-infra/README.md> > ; > > The summary can also be found as one pager > <https://docs.google.com/document/d/1Eao6rDBH45BDdtCLsfSCvPUi0JTbjTdzsGk3e_KNs6g/edit#> > . > > The effort (tracking bug > <https://bugs.chromium.org/p/chromium/issues/detail?id=1056170>) roughly > took ~1.5 years and involved a lot of user code cleanup as well. Many > fruitful discussions happened and quite some code was migrated and > re-written. Thanks @Anton Bikineev <[email protected]> and @Omer Katz > <[email protected]> for driving the implementation work. > > *FAQs:* > *Q1: Performance?* > A1: Neutral on competitive benchmarks; smaller ups and downs on micro > benchmarks. We don't expect big changes as the overall architecture stays > the same. > > *Q2: What does this mean for Blink developers? Anything I need to change > in my code?* > A2: We have stayed fully backwards compatible with the API. If we haven't > touched your code while migrating, you don't need to change anything as of > now. Going forward we may adjust the APis following V8's API stability > process. We will keep maintaining the Blink GC API reference > <https://chromium.googlesource.com/chromium/src/+/main/third_party/blink/renderer/platform/heap/BlinkGCAPIReference.md>, > although we may move some more general docs closer to the library. > > *Q3: What's up with IWYU for Oilpan in Blink?* > A3: So far we have kept the include-all headers around but we'd like to > move to IWYU to avoid pulling in too many V8 headers everywhere. > > *Q4: Can we use Oilpan within V8 itself?* > A4: Not just yet. Stay tuned on updates in this area. > > Encountering issues, or have suggestions? Let us know: > - [email protected] > - Monorail: Blink>GarbageCollection (Chromium), Oilpan (V8) > > -Michael > > -- > You received this message because you are subscribed to the Google Groups > "platform-architecture-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/a/chromium.org/d/msgid/platform-architecture-dev/CAH%2BmL5BYuu7zOe29OWc7x1hTef8nb51ZUBz2EkvJuR_2mS_Cig%40mail.gmail.com > <https://groups.google.com/a/chromium.org/d/msgid/platform-architecture-dev/CAH%2BmL5BYuu7zOe29OWc7x1hTef8nb51ZUBz2EkvJuR_2mS_Cig%40mail.gmail.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/CACuR13d25DEZY4pS2qtFx9BRKidQt9E_nrBtNfhrEtyETk4iWQ%40mail.gmail.com.
