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