This is a known performance bug in the green schedulers being tracked at https://github.com/rust-lang/rust/issues/11730.
To see the difference, you can run with RUST_THREADS=1 when using the green scheduler. On Fri, Jul 11, 2014 at 1:39 PM, Chandru <[email protected]> wrote: > I tried the rust-http's comparison with go from here. > https://github.com/chris-morgan/rust-http/tree/master/comparisons > > Using the default code, which I guess uses 1:1 scheduling, rust falls behind > go when concurrency goes greater than the number of cores (4). I guess this > is to be expected as context switches increase without additional > parallelism. > > go 1 wrk 7856.76 > rust 1 wrk 19617.39 > go 2 wrk 20364.92 > rust 2 wrk 30591.88 > go 3 wrk 30408.15 > rust 3 wrk 45847.69 > go 4 wrk 41953.29 > rust 4 wrk 53632.75 > go 8 wrk 56632.79 > rust 8 wrk 54660.72 > go 16 wrk 58263.69 > rust 16 wrk 54906.18 > go 32 wrk 57773.54 > rust 32 wrk 56682.38 > > However, on switching to M:N with this change, > > #![feature(phase)] > #[phase(plugin)] > extern crate green; > > green_start!(main) > > rust seems to be stuck around 25K req/s while go's throughput goes much > higher. > > go 1 wrk 7850.23 > rust 1 wrk 24361.64 > go 2 wrk 20478.89 > rust 2 wrk 23349.38 > go 3 wrk 30592.79 > rust 3 wrk 24232.2 > go 4 wrk 42165.1 > rust 4 wrk 25950.4 > go 8 wrk 56540.86 > rust 8 wrk 27284.01 > go 16 wrk 57957.76 > rust 16 wrk 26275.33 > go 32 wrk 57611.55 > rust 32 wrk 25674.82 > > Am I reading this wrong or does it indicate some bottleneck in the M:N > scheduler? > > -- > Chandra Sekar.S > > _______________________________________________ > Rust-dev mailing list > [email protected] > https://mail.mozilla.org/listinfo/rust-dev > _______________________________________________ Rust-dev mailing list [email protected] https://mail.mozilla.org/listinfo/rust-dev
