<p dir="ltr">Not sure about suspend, but you might be hitting locks a lot. Compile erlang with lcnt - those suspends maybe just a result of optimistic spinning on locks.</p>
<div class="gmail_quote">On Feb 2, 2014 10:38 PM, "Philip Clarke" <<a href="mailto:send2philip@gmail.com">send2philip@gmail.com</a>> wrote:<br type="attribution"><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 have been doing some profiling using fprof on my system.</div><div><div>Using fprof I see that ets:select is calling suspend.</div><div><br></div></div><div>I suspect that I have found a bottleneck where I have an ets table with write_concurrency defined and there are lots of processes doing reads thousands of times per second. But my question is more general to profiling.</div>
<div><br></div><div>What exactly does suspend do ? I suspect it may be an indication that my process has run out of reductions and is preempted by the scheduler ?</div><div>Could anyone confirm please ?</div>
<div><br></div><div>Just in case it is useful, here is the relevant part of my fprof analysis file.</div><div><br></div><div><div><font face="courier new, monospace">{[{{mymodule,get_values,1}, 6, 2992.735, 31.313}],</font></div>
<div><font face="courier new, monospace"> { {ets,select,2}, 6, 2992.735, 31.313}, %</font></div><div><font face="courier new, monospace"> [{suspend, 92, 1707.908, 0.000},</font></div>
<div><font face="courier new, monospace"> {{lists,sum,1}, 6, 1251.655, 0.709},</font></div><div><font face="courier new, monospace"> {garbage_collect, 7, 1.859, 1.859}]}.</font></div>
<div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">{[{{ets,select,2}, 6, 1251.655, 0.709}],</font></div><div><font face="courier new, monospace"> { {lists,sum,1}, 6, 1251.655, 0.709}, %</font></div>
<div><font face="courier new, monospace"> [{{lists,sum,2}, 6, 1250.946, 0.047}]}.</font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">{[{{lists,sum,1}, 6, 1250.946, 0.047},</font></div>
<div><font face="courier new, monospace"> {{lists,sum,2}, 20647, 0.000, 1241.206}],</font></div><div><font face="courier new, monospace"> { {lists,sum,2}, 20653, 1250.946, 1241.253}, %</font></div>
<div><font face="courier new, monospace"> [{suspend, 10, 9.693, 0.000},</font></div><div><font face="courier new, monospace"> {{lists,sum,2}, 20647, 0.000, 1241.206}]}.</font></div>
<div><br></div></div><div>Thanks</div><div>Philip</div><div><br></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>