<div dir="ltr">I have benchmarked with Erlang 18.0-rc2 and all the issues I have mentioned here have been resolved.<div><br></div><div>Thanks OTP!</div></div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature"><div><br></div><div><br></div><div><span style="font-size:13px"><div><span style="font-family:arial,sans-serif;font-size:13px;border-collapse:collapse"><b>José Valim</b></span></div><div><span style="font-family:arial,sans-serif;font-size:13px;border-collapse:collapse"><div><span style="font-family:verdana,sans-serif;font-size:x-small"><a href="http://www.plataformatec.com.br/" style="color:rgb(42,93,176)" target="_blank">www.plataformatec.com.br</a></span></div><div><span style="font-family:verdana,sans-serif;font-size:x-small">Skype: jv.ptec</span></div><div><span style="font-family:verdana,sans-serif;font-size:x-small">Founder and Lead Developer</span></div></span></div></span></div></div></div>
<br><div class="gmail_quote">On Wed, Apr 8, 2015 at 12:44 AM, José Valim <span dir="ltr"><<a href="mailto:jose.valim@plataformatec.com.br" target="_blank">jose.valim@plataformatec.com.br</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">I have first noticed this issue when compiling Elixir's grammar. Compiling yrl -> erl -> beam is about 20% slower in Erlang 18.0-rc1. The results are shown below:<div><div><div><div><br></div><div><a href="https://gist.github.com/josevalim/ab08341512ba875fb4a7" target="_blank">https://gist.github.com/josevalim/ab08341512ba875fb4a7</a><br></div><div><br></div><div>To further verify the performance issues, I have decided to run Elixir's test suite with 18.0 and 17.4. Elixir test suite defines a lot of modules dynamically when loading so that would be a good test. The results are here:</div><div><br></div><div><a href="https://gist.github.com/josevalim/895e2365d5ae517b1c8a" target="_blank">https://gist.github.com/josevalim/895e2365d5ae517b1c8a</a><br></div><div><br></div><div>It is interesting that the load/compile times are indeed higher in 18.0 but the test suite is also taking *longer*. This may imply it is not the compiler that is slower but Erlang itself. I have run the test suite of other projects in different Erlang versions (same Elixir version though) and seen similar slow down. About a 20% slow down on Erlang 18.0-rc1 overall.</div><div><br></div><div>Unfortunately, I don't have any idea why this is happening. I have asked others to compile the same .yrl file and they have seen similar performance hit. It is easy to reproduce it. Download the elixir_parser.yrl file:</div><div><br></div><div><div><a href="https://github.com/elixir-lang/elixir/blob/v1.0/lib/elixir/src/elixir_parser.yrl" target="_blank">https://github.com/elixir-lang/elixir/blob/v1.0/lib/elixir/src/elixir_parser.yrl</a></div></div><div><br></div><div>And run both commands:</div><div><br></div><div>    $ time erlc +time elixir_parser.yrl</div><div>    $ time erlc +time elixir_parser.erl<br></div><div><br></div><div>I hope by posting this report others can be alert to similar issues in their projects.</div><div><br></div><div>Thoughts?</div><span class="HOEnZb"><font color="#888888"><div><br></div><div><span style="font-size:13px"><div><span style="font-family:arial,sans-serif;font-size:13px;border-collapse:collapse"><b>José Valim</b></span></div><div><span style="font-family:arial,sans-serif;font-size:13px;border-collapse:collapse"><div><span style="font-family:verdana,sans-serif;font-size:x-small"><a href="http://www.plataformatec.com.br/" style="color:rgb(42,93,176)" target="_blank">www.plataformatec.com.br</a></span></div><div><span style="font-family:verdana,sans-serif;font-size:x-small">Skype: jv.ptec</span></div><div><span style="font-family:verdana,sans-serif;font-size:x-small">Founder and Lead Developer</span></div></span></div></span></div></font></span></div></div>
</div></div>
</blockquote></div><br></div>