Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Эффективность или удобочитаемость?Содержание книги
Поиск на нашем сайте Методы, делаюшие программу эффективной и не наносящие ущерба удобочитаемости, нужно использовать всегда. Удобочитаемость важнее эффективности. Оптимизирующие компиляторы Оптимизация программного кода — это модификация программ, выполняемая оптимизирующим компилятором или интерпретатором с целью улучшения их характеристик, таких как производительности или компактности, — без изменения функциональности. Оптимизация — не обязательный, но важный этап компиляции. Типы оптимизации компилятора: 1) низкоуровневая (машинно-зависивамая) — на уровне элементарных команд, например, инструкций процессора; 2) высокоуровневая (машинно-независимая) — на уровне структурных элементов программы, н-р, ветвления и циклы. Оптимизация программ Производится по двум критериям: время и память. Когда возникает необходимость оптимизации рабочей программы сначала проверяется используемый алгоритм на возможноть улучшения, если алгоритм такой возможности не дает, то следует попробовать выбрать другой алгоритм. Стадии оптимизации по времени: Сегментация программы — разбиение на подпрограммы. Профилировка подпрограмм — определение процента времени выполнения отдельных подпрограмм. Оценка возможных улучшений: не стоит улучшать не поддающиеся улучшению подпрограммы. Для каждой подпрограммы вычисляется коэффициент улучшения = (процент времени × процент улучшения) / усилия; подпрограммы с большим значением коэффициента подлежат оптимизации в первую очередь. Подходы к оптимизации: «чистка» и перепрограммирование. Оптимизаци памяти Экономное использование памяти почти всегда сопровождается увеличением времени работы программистов и времени выполнения программы. Оверлейность — возможность перенесения подпрограмм в ОЗУ из другого типа памяти, что позволяет нескольким подпрограммам использовать одну область памяти. Недостаток — постоянное обращение к диску. Возможности оверлея доступны только при наличии вирт памяти. Заголовки сообщений лучше хранить в оверлейном сегменте, т.к. используются редко. Эквивалентность: В большинстве машинных языков предусмотрены операторы, позволяющие двум переменным занимать одну и ту же ячейку памяти. Вычислительные составляющие Вычисление констант следует производить на этапе компиляции программы, а неменяющиеся переменные объявлять константами. Арифметические операции выполняются с различной скоростью. В порядке убывания скорости: сложение или вычитание, умножение, деление, возведение в степень. Преобразование выражений может исключить операции или позволит заменить медленные операции быстрыми. Группировка операций позволит уменьшить число медленных операций. Вызов функций занимет время, а встраиваемые функции увеличивают объем используемой памяти. Использование циклов позволяет умньшить использование памяти для хранения кода программы, но требуется время на инициализацию переменных цикла. Условные операторы должны следовать с учетом вероятностей и частичных вычислений (a and b and c). Операции ввода-вывода требуют много времени. Использование буферов позволяет сократить время операций ввода-вывода, но требуют для их организации дополнительную память. Модульность — использование подпрограмм. Требуют времени на вызов, следует применять если код используется более чем в одном месте. Отладка программ. Отладка — этап разработки программы, на котором обнаруживают, локализуют и устраняют ошибки. Есть различные подходы и средства отладки; в качестве основного средства используются отладчики, которые включают в себя пользовательский интерфейс для пошагового выполнения программы: оператор за оператором, функция за функцией, с остановками на некоторых строках исходного кода или при достижении определённого условия. Они также дают возможность отображения значений переменных. Отслеживать правильный ход программы можно расстановкой в критических её частях отладочных операторов вывода «внутренней» информации о программе. Вывод отладочных сведений в файл называется журналированием.
|
||
|
Последнее изменение этой страницы: 2016-12-30; просмотров: 379; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.196 (0.009 с.) |