<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 May 30, 2017, at 3:36 PM, Jean-Daniel via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><div style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><blockquote type="cite" class=""><div class=""><br class="Apple-interchange-newline">Le 30 mai 2017 à 12:42, Charlie Monroe via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>&gt; a écrit :</div><br class="Apple-interchange-newline"><div class=""><div class="" style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">There was someone a few weeks ago trying to port his Go game to Swift from (I believe) C++ and found out that the lack of fixed-size arrays was causing the move-computing algorithm to slow down significantly.<div class=""><br class=""></div><div class="">This is due to fixed arrays being able to live on stack, while "normal Array" is dynamically allocated on heap, etc.</div></div></div></blockquote><div class=""><br class=""></div><div class="">Really ? Isn’t it due to the value semantic of swift arrays ?</div><div class=""><br class=""></div><div class="">If this is the former, its algorithm can probably be tweak to reuse the array and require less allocations.</div><div class=""><br class=""></div><div class="">Unless if you algorithm is eager in memory allocation/deallocation, you shouldn't get a significant difference between static array and dynamic array.</div></div></div></blockquote><br class=""></div><div>Eliminating the dynamic allocations and extra indirections caused by the Swift array implementation can make a huge difference, not just in itself, but it also gives the compiler more opportunities to optimize the code.&nbsp;In my code (Monte Carlo simulations for a Go-playing program) I was able to gain a factor of 5 by using the ugly workaround of importing fixed-size arrays from C.</div><div><br class=""></div><div>Anders</div><div><br class=""></div></body></html>