<div dir="ltr"><div>I checked with timer:tc/3 and calling a port driver with encode or decode takes 4ms:</div><div> </div><div>timer:tc(?MODULE, command, [Port, encode, Binary])</div><div>command(Port, Type, Binary) -><br>
    port_control(Port, Type, Binary).</div><div> </div><div>Is this the correct way to measure it?</div><div>How do I choose how much to bump reductions assuming that it takes 4ms to run?</div><div>Is it reasonable to assume that a more modern and powerful CPU will result with 1/10 time which will be < 1 ms?</div>
<div> </div><div>I'm trying to understand if I can use NIF today and take advantage of dirty schedulers and native processes in a year or two.</div><div> </div><div> </div></div><div class="gmail_extra"><br><br><div class="gmail_quote">
On Tue, Jul 2, 2013 at 1:16 PM, Kenneth Lundin <span dir="ltr"><<a href="mailto:kenneth.lundin@gmail.com" target="_blank">kenneth.lundin@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 Max,<div><br></div><div>I don't know why you are thinking that this will work better in R15 than in R16?</div><div>Can you point to any specific change in R16 that causes problems?</div><div>
<br></div><div>It has always been a bad idea to execute for a long time (before returning to the Erlang scheduler) inside a NIF, BIF or linked in driver.</div><div><br></div><div>In R16B01 some BIFs and NIFs which potentially could execute for a long time (based on the size of their input) have been made interruptible. More specifically this concens the BIF term_to_binary and</div>

<div>the crypto NIFs which handle stream input.</div><div><br></div><div>/Kenneth, Erlang/OTP, Ericsson</div></div><div class="gmail_extra"><br><br><div class="gmail_quote"><div><div class="h5">On Tue, Jul 2, 2013 at 11:17 AM, Max Lapshin <span dir="ltr"><<a href="mailto:max.lapshin@gmail.com" target="_blank">max.lapshin@gmail.com</a>></span> wrote:<br>

</div></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;padding-left:1ex;border-left-color:rgb(204,204,204);border-left-width:1px;border-left-style:solid"><div><div class="h5">It is also possible to revert to R15, but in any case if NIF will<br>

block scheduler, you will have problems with managing hunders of<br>
streams.<br>
</div></div><div><div>_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org" target="_blank">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>
</div></div></blockquote></div><br></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>