В применении к программам термин эффективность относится ли-
бо к использованию ресурсов системы, либо скорости выполнения,
либо к тому и другому. К ресурсам системы относится оперативная
память, дисковое пространство, устройства, то есть то, что может
выделяться и использоваться. Суждение о том, является программа
эффективной или нет, субъективно, оно зависит от ситуации. Расс-
мотрим программу, которая при выполнении использует 147 Кбайт
оперативной памяти, 2 Мбайта дискового пространства и затрачивает
в среднем 70 минут. Если это короткая программа, выполняющаяся на
персональном компьютере Apple 2, то по всей видимости не очень
эффективна. Однако, если это программа, выполняющаяся на супер-
компьютере Cray, то вероятно, она эффективна.
С другой стороны, когда вы добиваетесь эффективности по ка-
кому-либо одному параметру, часто при этом ухудшаются другие по-
казатели. Например, достижение более быстрого выполнения програм-
мы ведет к ее увеличению, если вы используете линейную программу
вместо вызовов функций для увеличения скорости. Кроме того, дос-
тижение более эффективного использования дискового пространства
за счет упаковки данных замедляет доступ к диску.
В свете этих проблем вы можете поставить вопрос. а как эф-
фективность вообще может обсуждаться. В действительности сущест-
вует несколько методик программирования, которые всегда дают эф-
фективные программы или по крайней мере более эффективные, чем в
других случаях. Существует также ряд методов, которые делают
программу как быстрее, так и меньше.