<div><div dir="auto">Found a nice blog post explaining why M1 is fast. </div><div><a href="https://debugger.medium.com/why-is-apples-m1-chip-so-fast-3262b158cba2">https://debugger.medium.com/why-is-apples-m1-chip-so-fast-3262b158cba2</a></div><br></div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, Dec 12, 2020 at 18:57 Doug Moen <<a href="mailto:doug@moens.org">doug@moens.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><u></u><div><div>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).<br></div></div><div><div><br></div><div>On Sat, Dec 12, 2020, at 6:31 PM, Mikalai Birukou via kwlug-disc wrote:<br></div><blockquote type="cite" id="m_816261540811853656qt"><p><moving into discussing silicon and near it><br></p><blockquote type="cite"><div>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.<br></div><blockquote type="cite" id="m_816261540811853656qt-qt"><div>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?<br></div><div> <br></div><blockquote type="cite"><div dir="ltr"> 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.<br></div></blockquote></blockquote></blockquote><div>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.<br></div><div> <br></div><div>_______________________________________________<br></div><div>kwlug-disc mailing list<br></div><div><a href="mailto:kwlug-disc@kwlug.org" target="_blank">kwlug-disc@kwlug.org</a><br></div><div><a href="https://kwlug.org/mailman/listinfo/kwlug-disc_kwlug.org" target="_blank">https://kwlug.org/mailman/listinfo/kwlug-disc_kwlug.org</a><br></div><div><br></div></blockquote><div><br></div></div>_______________________________________________<br>
kwlug-disc mailing list<br>
<a href="mailto:kwlug-disc@kwlug.org" target="_blank">kwlug-disc@kwlug.org</a><br>
<a href="https://kwlug.org/mailman/listinfo/kwlug-disc_kwlug.org" rel="noreferrer" target="_blank">https://kwlug.org/mailman/listinfo/kwlug-disc_kwlug.org</a><br>
</blockquote></div></div>