On Monday, 7 November 2022 at 14:34:38 UTC, Adam D Ruppe wrote:
Putting aside new GC implementation tweaks like I discussed last week, and not just switching to other functions, this week I wanted to lecture a bit about how you can reduce your GC pause times in stock D today:

http://dpldocs.info/this-week-in-d/Blog.Posted_2022_11_07.html

By far, the biggest benefit you can tweak in D's gc is making your bulk allocations be completely pointer-free, since then it is entirely removed from the scan job, saving potentially significant amounts of time.

I've been avoiding void[] for this reason (I mean, void[] _could_ contain pointers), but I think I'm cargo-culting this?

If I do:
    ubyte[] arr = new ubyte[100_000_000];
void[] arr2 = cast(void[]) arr; // will this still avoid scanning?

Does the GC still know that this area is NO_SCAN?


Reply via email to