Re: Отключение проверки выхода за границы массива
От: rameel https://github.com/rsdn/CodeJam
Дата: 21.09.20 04:06
Оценка: 84 (3)
Здравствуйте, VladCore, Вы писали:

VC>Кто помнит, в обоих ли случаях JIT отключает проверку на выход за границы массива, или только в первом?

VC>arr — массив одномерный в обоих случаях

Зависит от рантайма. Для последних (Core и NET FW 4.8 x64) разницы никакой нет, будет сгенерирован один и тот же код — проверки на выход за границы будут устранены. Для NET FW 4.8 x86 во втором варианте оптимизация уже не работает, соответственно проверки устранены уже не будут.

Все это справедливо только, если работаешь с локальной переменной или аргументом метода. В этом случае, джит уверен, что никто не изменит ссылку из вне метода, в остальном случае — гарантий нет, и джит вставит проверки на выход за границы массива
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Отредактировано 21.09.2020 4:09 rameel . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.