По своему опыту, у меня есть высокопараллельная программа на C # для изучения и классификации данных о последовательностях генов, которая очень интенсивно использует такие функции библиотеки параллельных задач, как Parallel.ForEach, Parallel.For, Task.Factory.StartNew () и множество структур из пространства имен Collections.Concurrent (блокирующие коллекции, параллельные словари, параллельные пакеты и т. Д.).Короче говоря, производительность моего приложения на Linux с использованием моно во много раз ниже.Я все еще пытаюсь понять это.Я могу запустить его с моно консоли в Windows с аналогичной производительностью.
Я экспериментировал с использованием моно-сборщика мусора sgen безрезультатно.Производительность моего приложения на сервере Linux, работающем с моно, все еще значительно ниже.
Изучение 8258 последовательностей: 0:17 против 1:59 м: сс в Linux
Классифицировать 921 последовательность: 2,29 секунды против 11: 05 мм: сс в Linux
См. Снимки экрана ниже.