Here is results for my version https://github.com/funny-falcon/headon I utilize results by computing hash and summing it it main thread.
.Net still faster and uses less memory. But not dramatically faster. But dramatically less memory. It is pitty. Here is results for .NET: headon/parallelism/dotnet$ /usr/bin/time dotnet run -c Release 10000 Project dotnet (.NETCoreApp,Version=v1.0) was previously compiled. Skipping compilation. Task to execute: 10000 10000 in 00:00:00.0110531, hash = 0xb64c05b4 0.62user 0.07system 0:00.58elapsed 119%CPU (0avgtext+0avgdata 66744maxresident)k 0inputs+48outputs (0major+17542minor)pagefaults 0swaps headon/parallelism/dotnet$ /usr/bin/time dotnet run -c Release 100000 Project dotnet (.NETCoreApp,Version=v1.0) was previously compiled. Skipping compilation. Task to execute: 100000 100000 in 00:00:00.0846664, hash = 0x829de33c 0.70user 0.06system 0:00.67elapsed 113%CPU (0avgtext+0avgdata 66776maxresident)k 0inputs+48outputs (0major+20086minor)pagefaults 0swaps headon/parallelism/dotnet$ /usr/bin/time dotnet run -c Release 1000000 Project dotnet (.NETCoreApp,Version=v1.0) was previously compiled. Skipping compilation. Task to execute: 1000000 1000000 in 00:00:00.9544900, hash = 0xde68528c 1.57user 0.12system 0:01.57elapsed 107%CPU (0avgtext+0avgdata 124912maxresident)k Here is for Go using channel for result passing: headon/parallelism/go$ /usr/bin/time go run main.go -tasks 10000 Task to execute: 10000 10000 in 54.893915ms, hash = 0xb64c05b4 0.34user 0.03system 0:00.21elapsed 177%CPU (0avgtext+0avgdata 30120maxresident)k 0inputs+2464outputs (0major+17786minor)pagefaults 0swaps headon/parallelism/go$ /usr/bin/time go run main.go -tasks 100000 Task to execute: 100000 100000 in 568.61465ms, hash = 0x829de33c 1.85user 0.12system 0:00.76elapsed 260%CPU (0avgtext+0avgdata 268676maxresident)k 0inputs+2464outputs (0major+77815minor)pagefaults 0swaps Project/headon/parallelism/go$ /usr/bin/time go run main.go -tasks 1000000 Task to execute: 1000000 1000000 in 6.251455405s, hash = 0xde68528c 18.74user 1.17system 0:06.52elapsed 305%CPU (0avgtext+0avgdata 2708028maxresident)k 0inputs+2464outputs (0major+668978minor)pagefaults 0swaps And Go result with using array for result passing and sync.WaitGroup for synchronisation: headon/parallelism/go$ /usr/bin/time go run mainwait.go -tasks 10000 Task to execute: 10000 10000 in 9.313603ms, hash = 0xb64c05b4 0.19user 0.02system 0:00.17elapsed 127%CPU (0avgtext+0avgdata 30356maxresident)k 0inputs+2472outputs (0major+14299minor)pagefaults 0swaps headon/parallelism/go$ /usr/bin/time go run mainwait.go -tasks 100000 Task to execute: 100000 100000 in 581.959038ms, hash = 0x829de33c 1.96user 0.12system 0:00.75elapsed 277%CPU (0avgtext+0avgdata 230132maxresident)k 0inputs+2472outputs (0major+69227minor)pagefaults 0swaps headon/parallelism/go$ /usr/bin/time go run mainwait.go -tasks 1000000 Task to execute: 1000000 1000000 in 6.258064822s, hash = 0xde68528c 18.75user 1.26system 0:06.54elapsed 306%CPU (0avgtext+0avgdata 2784356maxresident)k 0inputs+2472outputs (0major+686800minor)pagefaults 0swaps воскресенье, 9 октября 2016 г., 12:17:51 UTC+3 пользователь Sotirios Mantziaris написал: > > I am waiting for the final implementation to check them out. Looks > promising. > > On Sun, Oct 9, 2016, 12:15 Jan Mercl <0xj...@gmail.com <javascript:>> > wrote: > >> On Sun, Oct 9, 2016 at 11:06 AM Sotirios Mantziaris <smant...@gmail.com >> <javascript:>> wrote: >> >> > From what i understand goroutines are not threads either. >> >> That's the whole point for the original claim. there's not way .net could >> ever cope with 100k threads. If you want to compare apples to apples, the >> Go version should run only about GOMAXPROCS goroutines. Also, be sure to >> make some real work in the goroutine and collect and output its results >> (sum for example) to avoid optimizing it away. >> >> Anyway, then the comparison would become that of picking a random task to >> run on a thread vs a full blown goroutine scheduler with the complete >> ready/running/wating state handling. >> >> BTW: How are .net channels doing? ;-) >> >> -- >> >> -j >> > -- > Kind Regards, > > S. Mantziaris > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.