Does Mono implement Task Parallel library? If so, how does performance compare between .NET and mono.
相关问题
- Sorting 3 numbers without branching [closed]
- Graphics.DrawImage() - Throws out of memory except
- Why am I getting UnauthorizedAccessException on th
- 求获取指定qq 资料的方法
- How to know full paths to DLL's from .csproj f
This was implemented in Mono release 2.6.
From the release notes:
In my own experience, I have a highly parallel program in C# for the learning and classification of gene sequence data which makes very heavy usage of the Task Parallel Library features such as Parallel.ForEach, Parallel.For, Task.Factory.StartNew(), and many structures from from the Collections.Concurrent namespace (Blocking Collections, Concurrent Dictionaries, Concurrent Bags etc). In short, my application's performance on Linux using mono is many many times slower. I am still trying to figure this out. I can run it from the mono console in windows with similar performance.
I have experimented with using mono's sgen garbage collector to no avail. The performance of my application on a Linux server running with mono is still dramatically slower.
Learning 8,258 sequences: 0:17 vs. 1:59 m:ss on Linux
Classify 921 sequences: 2.29 seconds vs. 11:05 mm:ss on Linux
See screen shots below.
Did you try changing the min/maxthreads?
You are operating way beyond me, but I found that nothing was getting done. So I set it to 5 * number of cpu cores and it snapped right out of it!