<div dir="ltr"><div>Hello list,</div><div><br></div><div>I've got this large module[1]
(31k lines long) of protocol buffers[2] boilerplate whose compilation time
has almost doubled on every major Erlang release since OTP 21.</div><div><br></div><div>- OTP <a href="http://19.3.6.13">19.3.6.13</a>: <b>6.03s</b><br></div><div>- OTP <a href="http://20.3.8.24">20.3.8.24</a>: <b>6.73s</b><br></div><div>- OTP 21.3.8: <b>6.27s</b></div><div>- OTP 22.1: <b>13.93s</b></div><div>- OTP 23.0: <b>20.34s</b></div><div><b><br></b></div><div>The
source file and the environment is the same for all scenarios. The
measured intervals pertain only to compilation and not to the generation
of the boilerplate. Here's how I measured them:</div><div><br></div><div> > timer:tc(fun () -> c(test_pb) end).</div><div><br></div><div>The
boilerplate code was generated using gpb[3] 4.13.0 and the OS is a
GNU/Linux one, running on top of a circa-2012 Core i5 CPU.</div><div><br></div><div>Is this a known issue? I
did search for related threads in the mailing list archive but nothing
popped out. Is it worth opening a ticket at <a href="http://bugs.erlang.org">bugs.erlang.org</a>?</div><div><br></div><div>Thanks in advance for any thoughts you may have on the matter.<br></div><div><br></div><div><br></div><div>[1]: test_pb.erl - <a href="https://gist.github.com/g-andrade/a9dba4dacc46d609a68b2008f0d948b7">https://gist.github.com/g-andrade/a9dba4dacc46d609a68b2008f0d948b7</a></div><div>[2]: test.proto - <a href="https://gist.github.com/g-andrade/1d187d738905633c8dfa99cbd11e281b">https://gist.github.com/g-andrade/1d187d738905633c8dfa99cbd11e281b</a></div><div>[3]: gpb - <a href="https://github.com/tomas-abrahamsson/gpb">https://github.com/tomas-abrahamsson/gpb</a></div><br>-- <br><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr">Guilherme<br></div></div></div></div></div></div></div>