Hacker News new | ask | show | jobs
by davidgrenier 1060 days ago
Note that lightweight threads (even in CSP style concurrency model) can be even lighter and faster. F#'s Hopac library seems to meet such expectations with this simple program:

   #r "nuget:hopac"

   open Hopac
   open Hopac.Infixes
   open Hopac.Extensions

   seq{1..1000000}
   |> Seq.Con.iterJobIgnore (fun _ -> timeOutMillis 1000)
   |> run
Runs in 1.824s real, 17.635s user and 0.088s system time in under 186000KB, hence less around 200 bytes per thread.

10M threads sleeping 10 seconds taxes this machine to:

22s real, 4m user, 0.506s system @ 140 bytes/thread.