Hacker News new | ask | show | jobs
by pjmlp 1166 days ago
Not really, here it is winning hands down over Swift's ARC implementation.

https://github.com/ixy-languages/ixy-languages

2 comments

Wasn't this the comparison that decided to use reference types for everything for no real reason?
The reason being comparing how various schemes of automatic reference memory management perform.

Naturally if the purpose was to compare stack allocation performance other approach would have been taken.

The goal was to write a network driver in several languages. Nobody said anything about comparing memory management techniques, nor would the Swift implementation use a stack allocator anyways.
They would appreciate your contribution to fix the benchmark.

Apparently the ARC performance improvements announced at WWDC 2022 weren't needed.

I don’t think they would, considering they’ve already finished their study.
You could have your own repo to counterpost every time someone like me refers to that old study with tainted results.
I don’t know anything about the benchmark, but how would you test GC implementations without reference types?
Swift’s value types have reference counts because they may have members that need their lifetimes to be managed appropriately. (For example, if they’re reference types.)
This is incorrect, value types are not referenced counted in Swift. If a value type contains a reference type member (usually an anti pattern!), then that member’s reference count is indeed incremented when the value type is copied. But it is not accurate to claim that value types themselves have reference counts.
Yes, fair enough. I was thinking of this more from the perspective of types that have internal reference types that are opaque so it’s effectively like the value type itself having a reference count on it, but yes, really it’s the internal storage that is getting the count.
This isn't the kind of program Swift was designed to perform well for.

Nor is wallclock speed even what the system should be optimizing for, since you buy phones to run apps not to run the system. You should be measuring how well it gets out of the way of the important work.

Ah the excuses when facts are put on the table.

"Fast. Swift is intended as a replacement for C-based languages (C, C++, and Objective-C). "

-- https://www.swift.org/about/

"From its earliest conception, Swift was built to be fast. Using the incredibly high-performance LLVM compiler technology, Swift code is transformed into optimized machine code that gets the most out of modern hardware. The syntax and standard library have also been tuned to make the most obvious way to write your code also perform the best whether it runs in the watch on your wrist or across a cluster of servers.

Swift is a successor to both the C and Objective-C"

-- https://developer.apple.com/swift/#fast