On 1/26/14 5:13 AM, Daniel Micay wrote:
I think shared memory is widely applicable and easy to use too. It's
often much harder to use message passing.

Message passing has been proven time and time again to be among the easiest forms of concurrency to understand and use. You don't have to look any further than the list of the most popular concurrent languages.

Rust is making a lot of semantic sacrifices for the sake of
performance. I see most of it as being under the assumption that it
will eventually perform well rather than being based on hard numbers.

This is either:

1. An implication that we are not benchmarking, which is plainly false.

2. A denial that sometimes getting good performance requires a sophisticated implementation that takes time to get right. This is also false. Look at JavaScript engines, for example. You don't get good performance without at least two JITs (one non-SSA, one SSA) and possibly an interpreter. (And this is not because of JavaScript's complexity; LuaJIT's tracing is awfully complex too.) In these situations, the only way to know whether you're heading down the right path is to actually spend the time to optimize the implementation. Until that is done, stop energy (such as your constant stop energy against M:N threading) is entirely unhelpful.

It's significantly (20-30%+)
slower in the case where the condition variable is being hit a lot due
to imbalance in consumption/production.

Then why not expose a work-stealing queue instead?

Patrick

_______________________________________________
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev

Reply via email to