Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по информатике.doc
Скачиваний:
43
Добавлен:
02.05.2014
Размер:
431.62 Кб
Скачать

Эффективность программ

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

Профили и анализ программ

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

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

Если представить себе нек-й текст программы на любом языке программирования, то в аналитич профиле любой программы, мы должны оценивать операторы и их количество. Против нек-ых строк стоят просто числа. Это значит, что эти строки исп-ся фиксированное число раз, независимо от данных. Рядом с др строками стоят ф-лы, включ N-раз. ЗначNравно числу интервалов, к-ые ненобходимо вычислить и оно равно разности м/у первым и последним входными значениями. Получив аналитич профиль программы (АПП), можно выяснить сколько раз вып-сь опред ключевые операции. Для этого необх посмотреть программу, найти эти операции и просуммировать соотв-щие величины в аналитич профиле. В соотв-ствии с выполнением прогр каждая строка в этой программе может быть оценена на время ее вып-ия, тогда АПП даст нам воз-ть вычислить общее время вып-ия каждой строки программы всегда одинаково, то мы можем просто перемножить время для каждой строки на число ее исполнений и рез-т сложить.

Осн задачей программирования вообще явл-ся создание прав программ.

Эффективная программа не нужна, если она не обеспеч прав рез-ов.

Эффективная, но неправильная программа редко может быть сделана прав-ой в то время кА прав, но неэффективную программу можно оптимизировать, но сделать эффект-ой, поэтому оптимизация явл-ся 2 этапом программирования.1 этап– обеспеч прав программы.

Советы программисту: определяйте требования к эффективности любой программы на стадии ее проектирования.

В мире программирования сущ-т 3 типа программ и для каждой из них эффективность различна:

  1. Часто используемые программы– операц системы, компиляторы, прикладные программы. Понятно, что для этих программ эффективность явл-ся осн задачей по причине их частого использования.

  2. Производственные программы, исп-ые длительное время.Этот тип программ пишут профес программисты и хотя эффек-ть этих программ существенна, основные хар-ки здесь – эксплуатационные хар-ки.

  3. Программы, написанные не программистами, а специалистами в конкретных областях.Осн фактором здесь явл-ся время. Эффек-ть хотя и имеет опред специфику, она учитывается, когда речь идет об огранич объеме памяти.

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