Rambler's Top100
Главная
Новости
Статьи
Форумы
Книги
Коды
Сообщество
Блоги
О нас
 

Логин

Email:
  Пароль:

Войти
Зарегистрироваться
Забыл пароль

Поиск

 Искать :
 
Вперед

Сообщение

Начинающий программист


Смехотворец

Зарегистрирован:
28 March 2005
Сообщения: 1166
Примеры кода: 1
 

RE[4]: Влияет ли использование ключевого слова readonly на генерируемый код?

09 June 2006 10:40  


Блин, Бог Неба это одно, а дирижабль совсем другое.
У объектов есть поля и свойства, к языку это никакого отношения не имееет, а переменные объявляются внутри методов (накрайняк, иногда говорят, что поле - это переменная объекта, но крайне редко, если будешь спорить, приведу ссылки на MSDN, не поленюсь!). readonly в .NET относится именно к полям, про свойства правильнее говорить что они имеют или не имеют get/set accessor-ов (не знаю как по русски, нет устоявшейся терминологии), ибо установка свойства, это нечто большее, чем присвоение значения полю. А вопрос заключался именно во влиянии readonly на генерацию кода. Например имеем код (переменные суть поля объекта):
b = a + b;
c = a + c;
в общем случае компилится примерно так:
mov edx, [eax + смещение a]
mov ecx, [eax + смещение b]
add edx, ecx
mov [eax + смещение b], edx
mov edx, [eax + смещение a]
mov ecx, [eax + смещение c]
add edx, ecx
mov [eax + смещение c], edx
а если исзвестно, что a не меняется с момента создания, можно смело делать так
mov edx, [eax + смещение a]
mov ecx, [eax + смещение b]
add ecx, edx
mov [eax + смещение b], ecx
mov ecx, [eax + смещение c]
add ecx, edx
mov [eax + смещение c], ecx
т.е. один раз загрузить а в регистр (или локальную переменную, если делать эту оптимизацию на уровне MSIL) и пользовать ее на всей области действия метода. Теперь внимание, вопрос знатокам:
Атрибут поля InitOnly влият на оптимизацию MSIL-а/ассемблера, или выполняет чисто косметическую функцию, запрещая компилятору компилировать программы, которые пытаются присвоить что-нибудь readonly полям?

Программирую за еду.
Наверх
  



Немного оффтопа

 Влияет ли использование ключевого слова readonly на генерируемый код?Начинающий программист  07 June 2006 09:46
 RE: Влияет ли использование ключевого слова readonly на генерируемый код?Max Pro  07 June 2006 18:51
 RE[2]: Влияет ли использование ключевого слова readonly на генерируемый код?Начинающий программист  08 June 2006 10:09
 RE[3]: Влияет ли использование ключевого слова readonly на генерируемый код?Max Pro  08 June 2006 20:13
 RE[4]: Влияет ли использование ключевого слова readonly на генерируемый код?Начинающий программист  09 June 2006 10:40
 RE[5]: Влияет ли использование ключевого слова readonly на генерируемый код?Max Pro  10 June 2006 22:20
 RE[6]: Влияет ли использование ключевого слова readonly на генерируемый код?Начинающий программист  13 June 2006 11:21
 RE[7]: Влияет ли использование ключевого слова readonly на генерируемый код?Temych  13 June 2006 16:18
 RE[7]: Влияет ли использование ключевого слова readonly на генерируемый код?Temych  13 June 2006 16:17
 
Наш Киев

Apartments for Rent

Rambler's Top100
Рейтинг@Mail.ru
Идея: Dimon aka Manowar Программирование: Dimon aka Manowar Дизайн: Dan Lebedev
Хостинг от компании Parking.ru
Карта сайта