Earlier quoted context omitted.
(1) The benchmark measured the point of discussion. (2) Even not using asynchronity (which Go is heralded for), processes take $ time seq 1000 | while read; do sleep 0; done real 0m1.644s user 0m1.065s sys 0m0.672s
1. No, the point was that fork(2)+exec(3)/spawning processes is an expensive way to run code, not how long it takes for the parent to be able to do something else. 2. Your new benchmark is better. However, it is still a useless microbenchmark, as it is an unrealistic best-case scenario. Your spawn of sleep is happening within a fresh subshell started by the pipe you made. fork(2) depends on things like VMM size and o…
> What's really wrong here is that they're apparently spawning processes like crazy.
Sounds like it depends on the use-case, rather then blanket "two dozen processes per second is clearly absurd".