Я вот тут подумал немного на эту тему. На самом деле, абсолютно точная оптимизация на уровне ИСХОДНОГО кода с учетом всех тонкостей конвееров и прочего нужна не так часто (порываюсь написать, что исключительно редко).
Дело в том, что платформы для исполнения постоянно меняются и у каждой свои тонкие особенности. Отражать эти вещи на уровне исходного кода дело неблагодарное, все очень непостоянно, и, более того, на практике часто надо поддерживать несколько платформ одновременно (разные функции порождать? генерировать их темплейтами или препроцессором? Уж очень все громоздко и неэлегантно).
А вот оптимизировать для некоторой единой абстрактной машины, не так уж далеко ушедшей от реального железа, но существенно более гладкой --- пожалуй разумный компромисс. Эта машина будет соответствовать некому образу процессора, имеющемуся в голове озабоченного микроэффективностью С/С++ программиста.
Ну о оптимизации на уровне исходного кода для таких вещей имеют обычно более благообразный вид.
no subject
Date: 2013-08-04 08:28 am (UTC)Дело в том, что платформы для исполнения постоянно меняются и у каждой свои тонкие особенности. Отражать эти вещи на уровне исходного кода дело неблагодарное, все очень непостоянно, и, более того, на практике часто надо поддерживать несколько платформ одновременно (разные функции порождать? генерировать их темплейтами или препроцессором? Уж очень все громоздко и неэлегантно).
А вот оптимизировать для некоторой единой абстрактной машины, не так уж далеко ушедшей от реального железа, но существенно более гладкой --- пожалуй разумный компромисс. Эта машина будет соответствовать некому образу процессора, имеющемуся в голове озабоченного микроэффективностью С/С++ программиста.
Ну о оптимизации на уровне исходного кода для таких вещей имеют обычно более благообразный вид.