Здравствуйте, gandjustas, Вы писали:
EP>>То есть ещё раз, код C# чисто по построению намного труднее оптимизировать — для оптимизаций до уровней аналогичных C++ нужно либо язык модифицировать, либо делать оптимизаторы намного более мощные чем оптимизаторы C++
G>Язык тут не при чем.
Именно язык тут и при чём. Если писать на C++ в стиле C# — динамические замыкания, динамический IEnumerable, множество индерекций по памяти — то получим примерно такие же тормоза
G>Машинный код генерируется из IL. В нем все указанные тобой оптимизации делаются элементарно.
G>Но у JIT нет столько времени на пребразования, как у компилятора C++.
Что мешает сразу генерировать оптимизированный IL?
Я выше привёл пример с трансляцией C++ -> JS. JS ещё "хуже" IL, но тем не менее он работает быстро. Можно взять этот JS выхлоп и перевести на C# — и он там тоже будет работать быстро, несмотря ни на какой IL