<div dir="ltr">Hello,<div>I&#39;ve just started to work with Swift (have C++ background) and try to make some tests to avoid problems in design. But from beginning I met very disappointing case.</div><div><br></div><div>1. So I have 2 similar computers:</div><div>- Ubuntu 15.10 with clang and Swift-2.2 dev 2016.01.25 for Ubuntu 15.10</div><div>- iMac with OSX 10.11 and  Swift-2.2 dev 2016.01.25 fro OSX (switched to this toolchain)</div><div><br></div><div>2. Took extremely simple source code from <a href="http://benchmarksgame.alioth.debian.org/u64q/program.php?test=nbody&amp;lang=swift&amp;id=3" target="_blank">n-body sample</a></div><div><br></div><div>3. Set Release version with <span style="font-size:1em;white-space:pre-wrap">-Ounchecked -whole-module-optimization for both computers and get results:</span></div><div><span style="font-size:1em;white-space:pre-wrap"><br></span></div><div><span style="font-size:1em;white-space:pre-wrap">Ubuntu - 8.4 sec</span></div><div><span style="font-size:1em;white-space:pre-wrap">OSX - 167.3 sec</span></div><div><span style="white-space:pre-wrap">Was demolished by results</span></div><div><span style="white-space:pre-wrap"><br></span></div><div><span style="white-space:pre-wrap">4. Changed &quot;class Body&quot; to &quot;struct Body&quot; and get another results:</span></div><div><span style="white-space:pre-wrap"><br></span></div><div><span style="white-space:pre-wrap">Ubuntu - 12.2 sec</span></div><div><span style="white-space:pre-wrap">OSX - 10.0 sec</span></div><div><span style="white-space:pre-wrap">Again was deeply moved by results</span></div><div><span style="white-space:pre-wrap"><br></span></div><div><span style="white-space:pre-wrap">5. Added</span></div><div><span style="white-space:pre-wrap"><b>let arrPtr = UnsafeMutablePointer&lt;Body&gt;(bodies)</b></span></div><div><span style="white-space:pre-wrap">before loops and used arrPtr instead of bodies in loops. Got new result:</span><br></div><div><span style="white-space:pre-wrap"><br></span></div><div><span style="white-space:pre-wrap">For &quot;class Body&quot; variant:</span></div><div><span style="white-space:pre-wrap">Ubuntu - 7.3 sec</span></div><div><span style="white-space:pre-wrap">OSX - 11.1 sec</span></div><div><span style="white-space:pre-wrap"><br></span></div><div><span style="white-space:pre-wrap">For &quot;struct Body&quot; variant:</span></div><div><span style="white-space:pre-wrap">Ubuntu - 6.7 sec</span></div><div><span style="white-space:pre-wrap">OSX - 8.8 sec</span></div><div><span style="white-space:pre-wrap"><br></span></div><div><span style="white-space:pre-wrap">I believe something wrong with Swift compiler/optimizer if for the same x64 processor same toolchain generate very different code. Especially in 1 case with &quot;class Body&quot; on OSX platform - I guess it&#39;s bug. Can somebody comment results ?</span></div><div><span style="white-space:pre-wrap"><br></span></div><div><span style="white-space:pre-wrap">PS: Forgot to say - similar Java program <a href="http://benchmarksgame.alioth.debian.org/u64q/program.php?test=nbody&amp;lang=java&amp;id=2">n-body in Java</a> takes 6.5 sec on Ubuntu and 9.2 sec on OSX</span></div></div>