Главная страница
Библиотека (скачать книги)
Скачать софт
Введение в программирование
Стандарты для C++
Уроки по C#
Уроки по Python
HTML
Веб-дизайн
Ассемблер в среде Windows
ActiveX
Javascript
Общее о Линукс
Линукс - подробно
Линукс - новое
Delphi
Паскаль для начинающих
Турбопаскаль
Новости
Партнеры
Наши предложения
Архив новостей
|
Основная часть Windows-приложений разрабатывается с графическим пользовательским
интерфейсом и активно использует графические возможности
компьютера. В этом случае при разработке приложения необходимо учесть
пропускную способность системной шины и графической подсистемы компьютера.
Практически все приложения активно используют ресурсы жесткого диска.
В большинстве случаев производительность дисковой подсистемы оказывает
значительное влияние на работу приложения. Если программа интенсивно
использует ресурсы жесткого диска, например, часто выполняет запись-
перемещение файлов, то при относительно медленном жестком диске неизбежно
возникнут проблемы с производительностью.
Приведем другой пример. Преимущественное использование регистров центрального
процессора может повысить производительность программы за
счет уменьшения обмена по системной шине, как это случается при работе
с оперативной памятью. Во многих случаях повысить производительность
приложения можно путем кэширования данных. Это может помочь при дисковых
операциях, работе с мышью, устройством печати и т. д.
Если вы разрабатываете коммерческое приложение, то обязательно выясните,
с какой наихудшей аппаратной конфигурацией будет работать ваша программа.
Все мероприятия по оптимизации проводите с учетом именно такой
конфигурации аппаратных средств.
Оптимизация с использованием
средств языка высокого уровня
Использование такого метода оптимизации обычно связано с анализом программного
кода на предмет выявления узких мест (bottlenecks) в процессе
функционирования приложения. Обычно точки, в которых программа значительно
замедляет работу, выявить не так просто. В этом разработчику могут
помочь специальные программы, называемые профайлерами (profiler). Их
назначение — определить производительность приложений, помочь при отладке
и выявить точки программы, в которых производительность падает.
Одной из наилучших программ этого класса является Intel VTune Performance
Analyzer. Можно рекомендовать использовать именно эту программу
для отладки и оптимизации приложений.
Встроенные средства отладки имеются и в языках высокого уровня. Современные
компиляторы позволяют обнаруживать ошибки, однако они не предоставляют
никакой информации об эффективности выполнения того или
иного участка программы. Вот почему желательно иметь под рукой какой-
нибудь хороший профайлер.
Многие программисты предпочитают вести отладку приложений вручную.
Это не самый худший вариант, если вы хорошо представляете себе работу
приложения. В любом случае, как бы вы не проводили отладку, полезно
обратить внимание на некоторые моменты, влияющие на производительность
работы приложения:
• количество вычислений, выполняемых программой. Одним из условий
повышения производительности приложения является уменьшение объема
вычислений. Работающая программа не должна вычислять одно и
то же значение дважды. Вместо этого она должна рассчитать каждое
значение один раз и сохранить его в памяти для повторного использования.
Существенного повышения быстродействия приложения можно
добиться, если преобразовать математические вычисления в обращения
к таблицам, которые могут быть сгенерированы заранее;
• использование математических операций. Любое приложение, так или
иначе, использует математические операции. Анализ эффективности
вычислений довольно сложен и в каждом конкретном случае зависит от
многих факторов. Выигрыш в производительности может дать использование
более простых арифметических операций для вычислений. Везде,
где только можно, операции умножения и деления следует заменить соответствующим
блоком команд сложения/вычитания. Если в программе
используются операции с плавающей точкой, то старайтесь не использовать
команды обработки целых чисел, т. к. они замедляют работу приложения.
Еще один нюанс: используйте по возможности как можно
меньше операций деления. Производительность заметно падает и при
использовании математических операций в циклах. Операции умножения
на степень двойки можно заменить командами сдвига влево;
• использование циклических вычислений и вложенных структур. Речь
идет об использовании циклов WHILE, FOR. SWITCH, I F . Циклические вычисления
упрощают структуру программы, но уменьшают производительность.
Внимательно просматривайте программный код на предмет
поиска вложенных вычислений с использованием циклических структур.
<< Назад В начало Далее >> |
|