<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Dec 17, 2016, at 11:13 AM, Brian Gesiak via swift-dev <<a href="mailto:swift-dev@swift.org" class="">swift-dev@swift.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">Hello all!<div class=""><br class=""></div><div class="">I really enjoyed Chris Lattner's slides from his talk at IBM <<a href="http://researcher.watson.ibm.com/researcher/files/us-lmandel/lattner.pdf" class="">http://researcher.watson.ibm.com/researcher/files/us-lmandel/lattner.pdf</a>>. </div><div class=""><br class=""></div><div class="">The speaker notes mention ARC:</div><div class=""><br class=""></div><div class="">"There are two principle downsides to ARC that people cite: one is the need for atomic increment/decrements, which can be slow." [...] "The performance problems it can cause are real in some important cases"</div><div class=""><br class=""></div><div class="">Can someone point me to a good resource that explains these problems?</div></div></div></blockquote><div><br class=""></div><div>This might be a good starter post: <a href="https://fgiesen.wordpress.com/2014/08/18/atomics-and-contention" class="">https://fgiesen.wordpress.com/2014/08/18/atomics-and-contention</a></div><br class=""><blockquote type="cite" class=""><div class=""><div dir="ltr" class=""><div class=""> I guess atomic reference count changes create overhead in multithreaded applications?</div></div></div></blockquote><div><br class=""></div><div>There is overhead even in single-threaded applications, as the post above discusses. The overhead depends very much on the details of the particular microarchitecture.</div><br class=""><blockquote type="cite" class=""><div class=""><div dir="ltr" class=""><div class=""> Are there more detailed explorations into this topic?</div></div></div></blockquote><div><br class=""></div><div>If you’re looking for something Swift- or ARC-specific I don’t know of anything.</div><div><br class=""></div>Mark</div><div><br class=""></div></body></html>