[kwlug-disc] about silicon

Doug Moen doug at moens.org
Sat Dec 12 18:55:59 EST 2020


Rust provides both Atomic Reference Counting (called Arc) and non-atomic Reference Counting (called Rc). You choose the one that makes sense. Hopefully the type system complains if you use Rc in a context where atomicity is required, but I don't use Rust. C++ provides only atomic refcounting in the standard library; for the other kind you roll your own (which I have done).

On Sat, Dec 12, 2020, at 6:31 PM, Mikalai Birukou via kwlug-disc wrote:
> <moving into discussing silicon and near it>

>> Another trick is that Apple's dev languages and frameworks (Swift and Objective-C) use reference counting, which requires atomic increments and decrements. On Intel, these operations are five times slower than non-atomic operations; on Apple Silicon they run at the same speed. This is something I wish the other CPU vendors would get right, because refcounting has some technical advantages over tracing GC, and I use it in software I write. C++ and Rust, both "performance" languages, provide refcounting but not tracing GC.
>>> Regarding M1. My Understanding is that placement of RAM inside of processor package/silicon is the trick that makes it run fast. Is there anything else?
>>> 
>>>>  The Apple M1 looks decent, but since Apple no longer lets you run Linux on their hardware, I have no desire to ever buy one.
> Does Rust standard refcounting, or implementation of such pointers need to use atomic in/decrements? Can't it use non-atomic something, given a more detailed knowledge of ownership? Just wondering.
> 
> _______________________________________________
> kwlug-disc mailing list
> kwlug-disc at kwlug.org
> https://kwlug.org/mailman/listinfo/kwlug-disc_kwlug.org
> 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://kwlug.org/pipermail/kwlug-disc_kwlug.org/attachments/20201212/87623cf0/attachment.htm>


More information about the kwlug-disc mailing list