logoalt Hacker News

bhoustontoday at 3:37 PM3 repliesview on HN

.NET seems to have regularly changed the garbage collector over the years and I do not remember any similar surprises in production. I wonder why they have had better experience?

I thought that by now dynamic garbage collection was a known quantity so that making changes, outside of out right bugs, is fairly safe and predictable?


Replies

chihuahuatoday at 4:34 PM

I remember working on the Windows Update back-end at Microsoft around 2005, and we had a problem where it would freeze up periodically, and not surprisingly that turned out to be caused by GC. But we noticed it before shipping, and we just tweaked some GC parameters.

So I think it was not a big problem for .Net because it gave you enough control over GC, and because people tested their code before putting it in production.

stackskiptontoday at 3:43 PM

One thing Microsoft does really well is eating its own dogfood and Microsoft feeds a ton of .Net dogs.

So any change to GC starts with massive .Net MSFT code base so they get extremely good telemetry back about any downsides and might be able to fix it in time.

Weryjtoday at 4:15 PM

Actually there’s a change to dotnet 9 with how it handles the heap and GC which caused major issues for us.

I’ll confess the reason it hit us so hard is because the code quality was so low and wasteful on allocations that it didn’t hide the problem as well as previous versions.