[Haskell-cafe] RE: Haskell vs. Erlang: The scheduler
simonmar at microsoft.com
Tue Jan 3 11:36:37 EST 2006
On 03 January 2006 15:13, Joel Reymont wrote:
> On Jan 3, 2006, at 2:30 PM, Simon Marlow wrote:
>> The default context switch interval in GHC is 0.02 seconds,
>> measured in CPU time by default. GHC's scheduler is stricly round-
>> robin, so therefore with 100 threads in the system it can be 2
>> seconds between a thread being descheduled and scheduled again.
>> I measured the time taken to unpickle those large 50k packets as
>> 0.3 seconds on my amd64 box (program compiled *without*
>> optimisation), so the thread can get descheduled twice during while
>> unpickling a large packet, giving a >4s delay with 100 threads
> Is it impractical then to implement this type of app in Haskell?
> Based on the nature of Haskell scheduling I would be inclined to say
Apart from the problem you have with a space leak caused by the input
buffer of the logging thread overflowing, which is easily fixed by using
a bounded channel, I don't know why you want priorities. Is there
We could easily add Erlang-style priorities (though without the overhead
of counting function calls, I'd do it by counting allocations), but I'd
rather not if we can avoid it.
More information about the Haskell-Cafe