<div>I have do a test about the function call.</div><div>There are some strange thing happen when I use function call to pass a tuple. </div><div>The runtime won't change whatever the tuple scale size change(still smaller than 10k atom in it).</div><div>So I wonder if the function call always pass value?</div><div><br></div><div><br></div><div>And in I my project there is a efficiency bottleneck.</div><div>There is some function loop with passing some large record.</div><div>simply like this</div><div>%=============================</div><div><div>dot_write_func_dup(N) -></div><div><span class="Apple-tab-span" style="white-space:pre"> </span>X = #test{},</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>statistics(runtime),</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>dot_func_dup(N,X),</div><div><span class="Apple-tab-span" style="white-space:pre">   </span>{_,TotalRunTime}=statistics(runtime),</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>io:format("totalruntime:~w~n",[TotalRunTime]).</div><div>%=============================</div><div>dot_func_dup(N,X) when N > 0 -></div><div><span class="Apple-tab-span" style="white-space:pre">    </span>I = X#test{r500 = n},</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>J = I#test{r501 = m},</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>dot_func_dup(N -1 ,X);</div><div>dot_func_dup(0,X) -></div><div><span class="Apple-tab-span" style="white-space:pre"> </span>I = X#test{r500 = n},</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>J = I#test{r501 = m}.</div></div>%=============================<div>It seems very slow with the loop.</div><div><div>And we attempt to change the record loop to process dictionary.</div><div>It's worthy to change it?</div></div>