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.

Reply via email to