Книги
чёрным по белому
Главное меню
Главная О нас Добавить материал Поиск по сайту Карта книг Карта сайта
Книги
Археология Архитектура Бизнес Биология Ветеринария Военная промышленность География Геология Гороскоп Дизайн Журналы Инженерия Информационные ресурсы Искусство История Компьютерная литература Криптология Кулинария Культура Лингвистика Математика Медицина Менеджмент Металлургия Минералогия Музыка Научная литература Нумизматика Образование Охота Педагогика Политика Промышленные производства Психология Путеводители Религия Рыбалка Садоводство Саморазвитие Семиотика Социология Спорт Столярное дело Строительство Техника Туризм Фантастика Физика Футурология Химия Художественная литература Экология Экономика Электроника Энергетика Этика Юриспруденция
Новые книги
Цуканов Б.И. "Время в психике человека" (Медицина)

Суворов С. "Танк Т-64. Первенец танков 2-го поколения " (Военная промышленность)

Нестеров В.А. "Основы проэктирования ракет класса воздух- воздух и авиационных катапульных установок для них" (Военная промышленность)

Фогль Б. "101 вопрос, который задала бы ваша кошка своему ветеринару если бы умела говорить" (Ветеринария)

Яблоков Н.П. "Криминалистика" (Юриспруденция)
Реклама

Использование ассемблера для оптимизации программ на С++ - Магда Ю.С.

Магда Ю.С. Использование ассемблера для оптимизации программ на С++ — БХВ-Петербург , 2004. — 496 c.
ISBN 5-94157-414-2
Скачать (прямая ссылка): ispolzovaniyaassemblera2004.djvu
Предыдущая << 1 .. 2 3 4 5 6 < 7 > 8 9 10 11 12 13 .. 127 >> Следующая

? Определить основные требования к программе и представить их в формализованном виде.
? Определить форму представления входных и выходных данных и их структуру, а также возможные ограничения.
? На основе этих данных определить программный вариант (или модель) реализации задачи.
? Выбрать метод реализации задачи.
? Разработать алгоритм реализации программного кода. Не следует путать алгоритм решения задачи с алгоритмом реализации программного кода. В общем случае, они никогда не совпадают. Это самый ответственный этап разработки программного обеспечения!
? Разработать исходный текст программы в соответствии с алгоритмом реализации программного кода.
? Провести отладку и тестирование программного кода разработанного приложения.
Не следует воспринимать эти правила буквально. В каждом конкретном случае программист сам выбирает методику разработки программ. Некоторые этапы разработки приложения могут дополнительно детализироваться, а некоторые вообще отсутствовать. Для небольших задач достаточно разработать алгоритм, слегка подправить его для реализации программного кода и затем отладить.
При создании больших приложений, возможно, понадобится разрабатывать и тестировать отдельные фрагменты программного кода, что может потребовать дополнительной детализации программного алгоритма.
Для правильной алгоритмизации задач программисту могут помочь многочисленные литературные источники. Принципы построения эффективных алгоритмов достаточно хорошо разработаны. Имеется немало хорошей литературы по этой теме, например, книга Д. Кнута "Искусство программирования".
Обычно разработчик программного обеспечения стремится к тому, чтобы производительность работы приложения как можно меньше зависела от аппаратуры компьютера. При этом следует принимать во внимание наихудший вариант, когда у пользователя вашей программы будет далеко не самая последняя модель компьютера. В этом случае "ревизия" работы аппаратной части часто позволяет найти резервы для улучшения работы приложения.
14
Введение
Первое, что нужно сделать, — проанализировать производительность компьютерной периферии, с которой должна работать программа. В любом случае, знание того, что работает быстрее, а что медленнее, поможет при разработке программы. Анализ пропускной способности системы позволяет определить узкие места и принять правильное решение.
Различные устройства компьютера имеют разную пропускную способность. Наиболее быстрыми из них являются процессор и оперативная память, относительно медленными — жесткий диск и CD-привод. Самыми медленными являются принтеры, плоттеры и сканеры.
Основная часть Windows-приложений разрабатывается с графическим пользовательским интерфейсом и активно использует графические возможности компьютера. В этом случае при разработке приложения необходимо учесть пропускную способность системной шины и графической подсистемы компьютера.
Практически все приложения активно используют ресурсы жесткого диска. В большинстве случаев производительность дисковой подсистемы оказывает значительное влияние на работу приложения. Если программа интенсивно использует ресурсы жесткого диска, например, часто выполняет запись-перемещение файлов, то при относительно медленном жестком диске неизбежно возникнут проблемы с производительностью.
Приведем другой пример. Преимущественное использование регистров центрального процессора может повысить производительность программы за счет уменьшения обмена по системной шине, как это случается при работе с оперативной памятью. Во многих случаях повысить производительность приложения можно путем кэширования данных. Это может помочь при дисковых операциях, при работе с мышью, устройством печати и т. д.
Если вы разрабатываете коммерческое приложение, то обязательно выясните, с какой наихудшей аппаратной конфигурацией будет работать ваша программа. Все мероприятия по оптимизации проводите с учетом именно такой конфигурации аппаратных средств.
Использование такого метода оптимизации обычно связано с анализом программного кода на предмет выявления узких мест (bottlenecks) в процессе функционирования приложения. Обычно точки, в которых программа значительно замедляет работу, выявить не так просто. В этом разработчику могут помочь специальные программы, называемые профайлерами (profiler).
Их назначение — определить производительность приложений, помочь при отладке и выявить точки программы, в которых производительность падает. Одной из наилучших программ этого класса является Intel VTune Performance Analyzer. Я рекомендовал бы использовать именно эту программу для отладки и оптимизации приложений.
Введение
15
Встроенные средства отладки имеются и в языках высокого уровня. Современные компиляторы позволяют обнаруживать ошибки, однако о*ш не предоставляют никакой информации об эффективности выполнения toro или иного участка программы. Вот почему желательно иметь под рукой какой-нибудь хороший профайлер.
Многие программисты предпочитают вести отладку приложений вручную. Это не самый худший вариант, если вы хорошо представляете себе работу приложения. В любом случае, как бы вы не проводили отладку, полезно обратить внимание на некоторые моменты, которые могут повлиять на производительность работы приложения.
Предыдущая << 1 .. 2 3 4 5 6 < 7 > 8 9 10 11 12 13 .. 127 >> Следующая