If they used an array of structs they would've cut down on the GC's graph traversal significantly.
Another option I was surprised they didn't mention was to run GC.Collect periodically to clear out gen2.
Another option I was surprised they didn't mention was to run GC.Collect periodically to clear out gen2.
Since nothing is actually getting collected, if you ran GC.Collect periodically, you would just be incurring more lag with no benefit. I think your idea might help more in a different situation, one where you do have large amounts of memory getting reclaimed with each GC sweep.