Здравствуйте, Sharov, Вы писали:
S>А почему будет такая разница в сгенерированно коде?
.NET Framework уже не развивают, может бэкпортят что-то из корки. Плюс, в .NET Framework были разные бекенды для x86 и x64, отсюда и разница в реализованных оптимизациях
R>>Все это справедливо только, если работаешь с локальной переменной или аргументом метода. В этом случае, джит уверен, что никто не изменит ссылку из вне метода, в остальном случае — гарантий нет, и джит вставит проверки на выход за границы массива
S>А как jit убедиться, что никто не изменит аргумент в вызывающем коде? Всяческая многопоточность и т.д.
В данном случае речь идет о массивах, а длина массива не меняется, а ссылка на массив в переданном аргументе поменяться не может
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>