Бьерн Страуструп - Язык программирования С++. Главы 11-13
Страница 16. Эффективность



11.3.7 Эффективность

Д. Кнуту принадлежит утверждение "Непродуманная оптимизация - корень
всех бед". Некоторые слишком хорошо убедились в справедливости этого
и считают вредными все заботы об оптимизации. На самом деле вопросы
эффективности надо все время иметь в виду во время проектирования и
реализации. Это не означает, что разработчик должен заниматься
задачами локальной оптимизации, только задача оптимизации на самом
глобальном уровне должна его волновать.
    Лучший способ добиться эффективности - это создать ясный и
простой проект. Только такой проект может остаться относительно
устойчивым на весь период развития и послужить основой для
настройки системы с целью повышения производительности. Здесь
важно избежать "гаргантюализма", который является проклятием
больших проектов. Слишком часто люди добавляют определенные
возможности системы "на всякий случай" (см. $$11.3.3.2 и $$11.4.3),
удваивая, учетверяя размер выполняемой программы ради завитушек.
Еще хуже то, что такие усложненные системы трудно поддаются
анализу, а по этому трудно отличить избыточные накладные расходы
от необходимых и провести анализ и оптимизации на общем уровне.
Оптимизация должна быть результатом анализа и оценки производительности
системы, а не произвольным манипулированием с программным кодом,
причем это особенно справедливо для больших систем, где интуиция
разработчика или программиста не может служить надежным указателем
в вопросах эффективности.
       Важно избегать по сути неэффективных конструкций, а так же
таких конструкций, которые можно довести до приемлемого уровня
выполнения, только затратив массу времени и усилий. По этой же
причине важно свести к минимуму использование непереносимых по
своей сути конструкций и средств, поскольку их наличие препятствует
работе системы на других машинах (менее мощных, менее дорогих).

 
« Предыдущая статья   Следующая статья »