<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 class="gmail_signature"><div><br></div><div><a href="https://gist.github.com/josevalim/ab08341512ba875fb4a7">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">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">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><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>
</div></div>