[erlang-questions] Re: Unicast 20k messages, $500-$1000 bounty

Cliff Moon <>
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  
ok

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
> http://www.linkedin.com/in/joelreymont
>
>
> ________________________________________________________________
> erlang-questions mailing list. See http://www.erlang.org/faq.html
> erlang-questions (at) erlang.org
>
>



More information about the erlang-questions mailing list