Re[26]: вопрос к специалистам
От: Silver_s Ниоткуда  
Дата: 04.03.10 18:47
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Здравствуйте, Silver_s, Вы писали:


S_>>Кстати, по поводу битовыжимания. Жаль что C# коппилятор с включенной оптимизацией не достаточно этим занимается.

AVK>Для этого не компилятор надо наворачивать, а CLR дорабатывать. Например, Эрик Мейер считает, что yield должен быть специальной инструкцией IL, а не раскрываться компилятором.

Это конечно некоторые возможности откроет. Но все же не все конструкции имеет смысл до IL доводить.
Например кто-то обкурится и напишет :
foreach (var i in Enumerable.Range(2, 200000))
...;
вместо
for (int i = 2; i <= 200000; i++)

Но тем не менее, имеет полное моральное право, ожидать чтобы код работал с такой же скоростью что и for(;)
Сейчас он раз в 10 медленнее. И не видно,вроде, каких-то принципиальных проблем чтобы это компилятором проинлайнилось.
(Не данный частный случай, а вобще подобные конструкции)

S_>>Слишком уж быстро код генерируется на C# с включенной оптимизацией — компилятор должен 2-10 минут работать над средним проектом, а не 2-5 секунд. (но не засчет Thread.Sleep() конечно)


AVK>

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

Ну 10 минут это допустимый предел чтобы пользователи компилятора плеваться не начали. Release не часто собирать приходится.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.