logo
Ответы Госы_3

45. Эффективность. Уменьшение времени выполнения программы.

Традиционно эффективными считают программы, что требуют минимального времени выполнения и / или минимального объема оперативной памяти Особенные требования к эффективности программного обеспечения предъявляют при наличии ограничений (на время реакции системы, на объем оперативной памяти и т. п.). В случаях, когда обеспечение эффективности не требует серьезных временных и трудовых расходов, а также не приводит к существенному ухудшению технологических свойств, необходимо это требование иметь в виду.

Умный подход к обеспечению эффективности розроблювального программного обеспечения заключается в том, чтобы в первую очередь оптимизировать те фрагменты программы, которые существенно влияют на характеристики эффективности. Для уменьшения времени выполнения некоторой программы в первую очередь следует проанализировать циклические фрагменты с большим количеством повторений : экономия времени выполнения одной итерации цикла будет умножена на количество итераций.

Частично проблему эффективности программ разрешают за программиста компиляторы. Средства оптимизации, которые используются компиляторами, делят на две группы:

- машинно-зависимые, то есть ориентированы на конкретный машинный язык, выполняют оптимизацию кодов на уровне машинных команд, например, исключения лишних пересылок, использования более эффективных команд и т. п.;

- машинно-независимые выполняют оптимизацию на уровне входного языка, например, вынесения вычислений константных (независимых от индекса цикла) выражений из циклов и т. п.

Выбор алгоритма влияет на эффективность больше, чем любой другой элемент дизайна. Более сложные алгоритмы и структуры данные могут хорошо оперировать с большим количеством элементов, в то время как простые алгоритмы подходят для небольших объемов данных - накладные расходы на инициализацию более сложного алгоритма могут перевесить выгоду от его использования.

]