Здравствуйте, Sinix, Вы писали:
S>Здравствуйте, Sharov, Вы писали:
S>>Никогда не понимал такой уровень оптимизации на managed языках. Все равно же то, что написано будет прогоняться через jit, и последнее слово за ним. Или я чего-то не понимаю...
S>JIT довольно предсказуем. В смысле, оптимизации примерно одни и те же, что в 4.0 x86, что на свежем ryuJit. На старом x64 местами была беда, но сейчас про это можно забыть с чистой совестью.
Слишком гранулярная оптимизация для managed языков. Скорее всего я не прав, но моя точка зрения такая: вот мы оптимизируем на уровне линий кэша, вот у нас имеется сторонняя инфраструктура (jit+gc), нами не контролируемая. Каждая из этих структур также работает с кэшом и проч. периферией. Jit более менее понятен, ибо один раз компилирует "раз и навсегда", т.е. temporal locality у нас не пострадает. А вот допустим мы закладываемся на spatial locality в нашем коде, не учитывая инфраструктуру. А тут бац, и гц начинает свою работу ломая все наши предположения об выполнении нашего кода и всяческих spatial locality. Такое возможно или я написал бред?