<div dir="ltr">Hi Max,<div><br></div><div>How about just generating an iolist?</div><div>You could write a simple function for this FmtStr case that outputs an iolist and thus does not do too much copying and allocation.</div><div>Also how much faster is io_libc/format/2 compared to io_libc?</div><div>Just curious.</div></div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature"><div dir="ltr"><div><div><br></div><div>Cheers,</div><div>-- </div><div>Pierre Fenoll</div></div><div><br></div></div></div></div>
<br><div class="gmail_quote">On 22 March 2015 at 02:01, Max Lapshin <span dir="ltr"><<a href="mailto:max.lapshin@gmail.com" target="_blank">max.lapshin@gmail.com</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">Hi.<div><br></div><div>I've met again performance problem with io_lib:format.</div><div><br></div><div><div>iso8601({{Y,Mo,D}, {H,Mn,S}}) -></div><div>  FmtStr = "~4.10.0B-~2.10.0B-~2.10.0BT~2.10.0B:~2.10.0B:~2.10.0BZ",</div><div>  IsoStr = io_lib:format(FmtStr, [Y, Mo, D, H, Mn, S]),</div><div>  list_to_binary(IsoStr).  </div></div><div><br></div><div><br></div><div>Such code is a 0,01% of business logic of one small part of flussonic, but it takes about 95% of time to make 10% of text output.</div><div><br></div><div><br></div><div>I've solved this problem via <a href="https://github.com/maxlapshin/io_libc" target="_blank">https://github.com/maxlapshin/io_libc</a>  but I'm not sure that it is</div><div>a best way to do.  Maybe this is better solved in pure erlang?</div><div><br></div><div><br></div><div>Perhaps I'm not alone with this problem and somebody has some better idea than just exposing fprinf via nif?</div></div>
<br>_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
<br></blockquote></div><br></div>