Не удалось импортировать android.support.v7.widget.RecyclerView;

В семидесятые годы, в самом начале языка C, было введено ключевое слово register, чтобы программист мог дать подсказки компилятору, указав, что переменная будет использоваться очень часто и что она должна разумно сохранить его в одном из внутренних регистров процессора.

В настоящее время оптимизаторы гораздо эффективнее, чем программисты, для определения переменных, которые с большей вероятностью будут храниться в регистрах, и оптимизатор не всегда принимает подсказка программиста.

Так много людей ошибочно рекомендуют не использовать ключевое слово register.

Давайте посмотрим, почему!

Ключевое слово register имеет связанную сторону Эффект: вы не можете ссылаться (получить адрес) на переменную типа регистра.

Люди, советующие другим не использовать регистры, ошибочно воспринимают это как дополнительный аргумент.

Однако простой факт, что вы не можете взять адрес переменной регистра, позволяет компилятор (и i ts optimizer), чтобы знать, что значение этой переменной не может быть изменено косвенно через указатель.

Когда в определенной точке потока команд переменная регистра имеет свое значение, назначенное в регистре процессора, и регистр не использовался, так как для получения значения другой переменной компилятор знает, что нет необходимости перегружать значение переменной в этом регистре. Это позволяет избежать дорогостоящего бесполезного доступа к памяти.

Сделайте свои собственные тесты, и вы получите значительные улучшения производительности в своих самых внутренних циклах.

c_register_side_effect_performance_boost

0
задан Programmer Hari 5 March 2019 в 03:44
поделиться