LINUX.ORG.RU

Mono быстрее, чем .NET Framework: что за магия?

 ,


0

3

Первая лаба по .NET в универе, всё примитивно до предела: написать код, меряющий скорость выполнения трех примитивнейших заданий. Ну написал за 10 минут, померил. Потом решил чисто из интереса посмотреть, как оно будет в mono.

Результаты под mono:

Task A
Result: 109,845663963653, Consumed time: 00:00:03.2383445
Test B
Result: 363330494,064627, Consumed time: 00:00:03.2851935
Test C
Consumed time: 00:00:02.5287780

Результаты на .NET — первые две задачи за 10 секунд, третья около 8. Сборка в обеих случаях одна и та же, собранная M$ компилятором. Что за?!! Каким образом выходит, что Mono уделывает .NET?

Вот код: https://gist.github.com/frp/9616967

Deleted

Ответ на: комментарий от rikimaru

Нет, тогда я бы не удивлялся низкой его производительности.

Deleted
()
Ответ на: комментарий от Deleted

Протестируй на одной ОС, эти результаты смысла не имеют.

encyrtid ★★★★★
()

Win7, результаты практически одинаковые.

encyrtid ★★★★★
()

Ты бы еще на разных компьютерах пускал...

Zhbert ★★★★★
()
sw.Start();
Random r = new Random();
double[,] a = new double[matrixSize, matrixSize];
double[,] b = new double[matrixSize, matrixSize];
double[,] c = new double[matrixSize, matrixSize];
for (int i = 0; i < matrixSize; i++)
for (int j = 0; j < matrixSize; j++)
{
a[i, j] = r.NextDouble() / 10 + 1;
b[i, j] = r.NextDouble() / 10 + 1;
}
for (int i = 0; i < matrixSize; i++)
for (int j = 0; j < matrixSize; j++)
for (int k = 0; k < matrixSize; k++)
c[i, j] += a[i, k] * b[k, j];
sw.Stop();

а что ты именно тут измеряешь и почему всего одно измерение?

RedPossum ★★★★★
()

Разобрался. Идиотский фейл с моей стороны: в винде флажок «режим экономии энергии».

Deleted
()

Mono быстрее, чем .NET Framework

а в чем противоречие-то? или mono пишется индусами, .NET - профессионалами?

MyTrooName ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

Если снять тот самый флажок — да.

Deleted
()

Вообще-то Mono может быть существенно быстрее чем Microsoft .NET (попробуй mono-sgen --llvm). Особенно если с умом использовать simd-интринсики.

anonymous
()

Попробуй кот собранный в VS C# запускать и там, и там, и собранный mono, и там, и там. И сравни.

slackwarrior ★★★★★
()

ничего удивительного. Это разные реализации «стандарта».

Bad_ptr ★★★★★
()
Ответ на: комментарий от anonymous

По первым двум тестам оно на уровне сишки. На выбранной задаче от более эффективного сборщика мусора никакой разницы.

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.