Здравствуйте, VladD2, Вы писали:
_>>Вообще то как раз в разы и есть...
_>>Вот http://rsdn.ru/forum/flame.comp/6070881Автор: alex_public
Дата: 07.06.15
совсем не давно был конкретный простейший пример (отставание C# в 7 раз!),
VD>Треп это все. Всегда можно найти какие-то вырожденные случаи, но они никак не будут влиять на общее положение дел. Одно узкое место занимающееся битодроблением можно и вручную оптимизировать (вплоть до ансэйфа или сишной/ассемблерной функции). А, вот 90% гражданского кода работающего с моделью проще писать на более высокоуровневом языке.
Вообще то там часть провала обусловлена особенностям работы с многомерными массивами (т.е. сюда к примеру укладывается вся 2D графика), а другая часть провала обусловлена вообще обработкой любых массивов из чисел. Трёп и вырожденные случаи говоришь? ) Похоже ты вообще не понимаешь о чём речь. Давай ка я тебе покажу все цифры в деталях, чтобы ты оценил масштаб трагедии:
Python - 17 c //динамический язык, для сравнения
JavaScript - 13 с //динамический язык, для сравнения
C# - 8,7 с //я считаю это ужас для компилируемого языка со статической типизацией
Java - 7,3 с //не сильно лучше, но немного неожиданно (никаких теоретических предпосылок обгона тут C# я не знаю)
C# unsafe - 5,0 с //используем арифметику указателей (многие алгоритмы невозможно эффективно записать без неё)
D - 4,9 с //полностью нативный язык с указателями, но не выдающимся оптимизатором (оригинальный компилятор)
C++ no-simd - 3,5 c //мощный оптимизатор проявляет себя, даже если ему запретить использовать все возможности процессора
C++ - 1,3 с //базовый результат C++ с абсолютно тупым кодом (без малейшей оптимизации в исходном коде) не плох, но simd оптимизатор ещё не идеален
C++ opt. - 0,6 c //после минимальной ручной оптимизации мы достигаем теоретически возможного максимума быстродействия для данного процессора (на одном ядре).
Ты действительно считаешь, что подобное (а оно будет всплывать во всех вычислениях на массивах) — это ничего страшного? )
P.S. Такими темпами я совершенно не удивлюсь, если через пару лет (как раз WebAssembly подоспеет) Microsoft вообще плюнет на .Net и начнёт развивать только JS. Потому как разницы в быстродействие особой нет, а разница в кроссплатформенности и простоте разработки на лицо (и не в пользу .net'a). Вот как раз в последний релиз VisualStudio добавили Cordova (обычный принцип MS: "не можешь победить — возглавь")...