5 ms·
> Swift doesn't have a GC slowing things down This Apple marketing meme needs to die. Reference counting incurs arguably more cost than GC, or at least the cos
by terminaljunkid 7y ago
> Swift doesn't have a GC slowing things down
This Apple marketing meme needs to die. Reference counting incurs arguably more cost than GC, or at least the cost is spread through-out processing.
- pkolaczk 7y agoIt incurs some cost, but whether it is higher is very debatable. This is very much workload dependent. A smart compiler can elide most reference updates.
- abjKT26nO8 7y agoIt would seem that the Swift compiler is far from smart[1]. [1]: <https://media.ccc.de/v/35c3-9670-safe_and_secure_drivers_in_high-level_languages> https://media.ccc.de/v/35c3-9670-safe_and_secure_drivers_in_...
- pjmlp 7y agoNo it can't, not in Swift's current implementation. https://github.com/ixy-languages/ixy-languages https://github.com/ixy-languages/ixy-languages
- arcticbull 7y agoApple's ARC is not a GC in the classic sense. It doesn't stop the world and mark/sweep all of active memory. It's got "retain" and "release" calls automatically inserted and elided by the compiler to track reference counts at runtime, and when they hit zero, invoke a destructor. That's not even close to what most people think of when they think "gc". Of course it's not free, but it's deterministic.
- trevor-e 7y agoI think you are being borderline pedantic here. ARC _is_ GC in the classic sense: https://en.wikipedia.org/wiki/Garbage_collection_(computer_science)#Reference_counting https://en.wikipedia.org/wiki/Garbage_collection_(computer_s... I agree with you that most people tend to associate GC with something more advanced nowadays, like mark and sweep as you said in another comment, but it seems pointless to argue that ARC is not a form of GC.
- barrkel 7y agoYou're using a hearsay, folklore definition of GC, not a CS one. Refcounting in the presence of threads is usually non-deterministic too.
- pkolaczk 7y agoIt is non deterministic, but at a much different scale.