M
Minutri | Unity
@minutri651 подп.
1.3Kпросмотров
3 мая 2024 г.
Score: 1.5K
🤓 Аргументы методов В ходе обсуждения значимого и ссылочного типов, встает вопрос о месте их хранения. Про значимый тип в аргументах методов говорят, что его экземпляр хранится на стеке. Так ли это? Небольшая справка: —— 😉 Скорость обращения к регистру ЦП значительно выше, чем к тем данным, которые лежат на стеке. 😉 Регистры подключены напрямую к ALU ЦП, поэтому, для упрощения, - обращение к регистрам требует один такт. 😉 С другой стороны, как только мы достаем данные из стека, все усложняется. В работу подключаются кеши процессора, их контроллеры, шины памяти, оперативная память. Операция занимает значительно больше времени. С точки зрения программы, данные можно поместить в ОЗУ или в регистр. «Записать в кеш» нельзя. 😍Естественно, что при возможности, лучше работать с регистрами, так как мы ускорим работу программы. Дак вот, в C# имеет место быть следующая особенность. 🤓CLR via C#: «Кстати, в некоторых процессорных архитектурах для повышения производительности аргументы передаются через регистры». 🤔Пойдем дальше. Действительно ли по результатам работы il2cpp все значимые данные в методах хранятся на стеке? Нет, насколько я помню, они могут храниться и в куче. На самом деле во многом это зависит от реализации. Это, наверное, наиболее правильный ответ на вопрос о том, где будет храниться экземпляр значимого типа в аргументах. Но без объяснения он может звучать так, что кандидат не разбирается в теме. Поэтому, важно рассказать подробнее об этом. Думаю, будет полезно👊 Ставьте 👍
1.3K
просмотров
1509
символов
Да
эмодзи
Нет
медиа

Другие посты @minutri

Все посты канала →
🤓 Аргументы методов В ходе обсуждения значимого и ссылочног — @minutri | PostSniper