> you do compete with Go (4 kB initial stack segment) and Erlang (2.4 kB on
64 bit).

Actually, goroutines have a default stack size of 8kb since 1.2.

Also, applicable to this discussion, in 1.3 Go will be moving away from
segmented stacks to contiguous growable stacks:
https://docs.google.com/document/d/1wAaf1rYoM4S4gtnPh0zOlGzWtrZFQ5suE8qr2sD8uWQ/pub


On Tue, Oct 22, 2013 at 12:52 AM, Patrick Walton <pwal...@mozilla.com>wrote:

> On 10/21/13 8:48 PM, Daniel Micay wrote:
>
>> Segmented stacks result in extra code being added to every function,
>> loss of memory locality, high overhead for calls into C and
>> unpredictable performance hits due to segment thrashing.
>>
>> They do seem important for making the paradigm of one task per
>> connection viable for servers, but it's hard to balance that with other
>> needs.
>>
>
> I'm not sure they're that important even for that use case. Is 4 kB (page
> size) per connection that bad? You won't compete with nginx's memory usage
> (2.5 MB for 10,000 connections, compared to 40 MB for the same with 4 kB
> stacks), but you do compete with Go (4 kB initial stack segment) and Erlang
> (2.4 kB on 64 bit).
>
> Besides, if we really wanted to go head-to-head with nginx we could
> introduce "microthreads" with very small stack limits (256 bytes or
> whatever) that just fail if you run off the end. Such a routine would be
> utterly miserable to program correctly but would be necessary if you want
> to compete with nginx in the task model anyhow :)
>
> Realistically, though, if you are writing an nginx killer you will want to
> use async I/O and avoid the task model, as even the overhead of context
> switching via userspace register save-and-restore is going to put you at a
> disadvantage. Given what I've seen of the nginx code you aren't going to
> beat it without counting every cycle.
>
> Patrick
>
>
> ______________________________**_________________
> Rust-dev mailing list
> Rust-dev@mozilla.org
> https://mail.mozilla.org/**listinfo/rust-dev<https://mail.mozilla.org/listinfo/rust-dev>
>
_______________________________________________
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev

Reply via email to