Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Здравствуйте, gandjustas, Вы писали:
G>>Здравствуйте, Pavel Dvorkin, Вы писали:
PD>>>К сожалению, если поручить это все оптимизатору компилятора, то этот компилятор должен будет быть попросту гениальным, то есть включать в себя знание всех и всяческих техник, трюков и т.п, связанных и с кэшами, и с многопроцессорностью и с характером задачи. Увы, это вряд ли реально.
G>>Но теоретически возможно. Что и требовалось доказать.
PD>Я пытаюсь эту ситуацию сейчас понять. В общем, видимо, с идеальной программой я не совсем прав. При бесконечном количестве ресурсов ее не может быть. При ограниченном количестве она все же существует. Додумать надо.
PD>>>Компилятор будет в лучшем случае оптимизировать "в среднем", то есть в расчете на некую среднюю задачу. И чем выше уровень абстракций, тем хуже он это будет делать. Оптимизировать цикл можно очень хорошо, а оптимизировать задачу "сделай вот это" — можно лишь на бвзе некоторых правил оптимизации общего порядка. Как только попадется нечто, что под эти правила не подходят — результат будет плохим.
G>>Можно не писать то, что под эти правила не подходит.
PD>Так я об этом и говорю. Каждому инструменту — свое назначение. Где Linq, где ассемблер. кесарю кесарево, слесарю — слесарево
Из всего вышесказанного следует что программа написанная на более высоком уровне лучше поддается оптимизации.