[erlang-questions] Re: Unicast 20k messages, $500-$1000 bounty
Thu Jul 16 19:18:35 CEST 2009
The problem you're seeing there is process scheduling overhead. In the
fun it sends a message and it's doing an ungodly amount of context
switching. The way to get around this is to bump the process priority
level of the process which iterates the ets table.
On that node, I'd like to share my latest findings:
=INFO REPORT==== 16-Jul-2009::12:44:30 ===
setup: 557892.25ms, good: 20000, bad: 0, run: 11261.47ms
-382.1810ms | min
500.0000ms | 13035 - 65.18%
1000.0000ms | 6904 - 34.52%
1500.0000ms | 8 - 0.04%
2000.0000ms | 6 - 0.03%
2500.0000ms | 6 - 0.03%
3000.0000ms | 4 - 0.02%
3500.0000ms | 7 - 0.03%
4000.0000ms | 3 - 0.01%
4500.0000ms | 1 - 0.01%
5000.0000ms | 6 - 0.03%
10843.4820ms | 20 - 0.10%
10843.4820ms | max
Overall latency is improved drastically in my version, however there are
some stragglers which are taking way too long. I'm going to try and
figure out what's going on with them.
Joel Reymont wrote:
> On Jul 16, 2009, at 5:36 PM, Paulo Sérgio Almeida wrote:
>> What??? For 20k entries? Just traversal time (without sending msgs)?
>> There is something wrong. It cannot be this slow. This would be 50 us
>> per entry.
> Apologies, I meant time taken to extract the list with ets:select and
> traverse the list while broadcasting.
> Mac hacker with a performance bent
> erlang-questions mailing list. See http://www.erlang.org/faq.html
> erlang-questions (at) erlang.org
More information about the erlang-questions