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?