Hacker News new | past | comments | ask | show | jobs | submit login

Didn't say they weren't. Not sure if you misunderstood my comment.

It's a mistake to extrapolate too much about the "reference counting vs tracing GC" question from this one low-level driver benchmark. In fact reading their paper, they don't understand why Swift ARC traffic was so high.[1] They weren't allocating a lot of objects or copying. It's probably just an unoptimized use case or bug, not something fundamental in the memory management model. Swift is still quite young.

[1] https://github.com/ixy-languages/ixy.swift/blob/master/perfo...




Check the language report from Mesa/Cedar, which used reference counting with a cycle collector, already back then they weren't that inspiring.

The fact that the language designers switched to tracing GC on their further work, namely Modula-2+ and Modula-3. Or that Wirth after his 2nd sabbatical year at Xerox PARC decided for tracing GC on his system programming languages, Finally Microsoft own research, also using tracing GCs.

All in all quite telling, where they seen performance gains to be held.

Swift's approach makes sense from Objective-C compatibility point of view. Which also made sense given the failure to add a tracing GC while keeping the underlying C semantics.

From performance point of view not so much.

Having a tracing GC doesn't remove the possibility to have stack allocations, even when they look like heap ones, implement pools or whatever.

Unfortunately Java's approach of not having the same type system as older GC enabled systems programming languages created a bad picture of what is actually available out there.


This is not really strong evidence. A analysis from the 80s and a possibly buggy driver benchmark. You’re digging deep.

Look, tracing GC has come a long way. I’m not saying it’s unsuitable for servers at all. I’m just excited to see what sidestepping its problems entirely can do for server apps, especially with respect to tail latency and energy efficiency, increasingly salient metrics for services at scale.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: