In my own experience, I have a very parallel C # program for learning and classifying data for gene sequences, which makes great use of the functions of the parallel task library, such as Parallel.ForEach, Parallel.For, Task.Factory. StartNew () and many structures from the Collections.Concurrent namespace (blocking collections, parallel dictionaries, parallel packages, etc.). In short, my application performance on Linux using mono is many times slower. I'm still trying to figure it out. I can run it from the mono console in windows with similar performance.
I experimented using the mono sgen garbage collector to no avail. The performance of my application on a mono Linux server is still significantly slower.
Learning 8,258 sequences: 0:17 vs 1:59 m: ss on Linux
Classify sequences 921: 2.29 seconds versus 11:05 mm: ss for Linux
See screenshot below.


Jake drew
source share