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

Суворов С. "Танк Т-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 .. 127 >> Следующая

Введение
11
ложений, то критерии оптимизации здесь будут несколько иными. На первое место могут выйти проблемы использования памяти (особенно для серверной части приложения) и оптимизации сетевого взаимодействия с клиентской частью.
Приложения, работающие в режиме реального времени, критичны по синхронизации получения, обработки и, возможно, передачи данных за приемлемые интервалы времени. Подобные программы требуют, как правило, оптимизации по загрузке процессора и синхронизации с системными службами операционной системы. Если вы — системный программист и разрабатываете драйверы или сервисы для работы с операционной системой, например, с Windows 2000, то неэффективный программный код в лучшем случае только замедлит работу всей операционной системы, а о худших последствиях можно только догадываться.
Как видим, повышение производительности программ зависит от многих факторов и в каждом конкретном случае определяется тем, что эта программа должна делать.
Рассмотрим теперь брлее подробно, как можно выполнить оптимизацию программ, и проведем небольшой сравнительный анализ различных методов повышения производительности выполнения приложений.
Простейший способ заставить приложения работать быстрее — это повысить вычислительную мощь компьютера за счет установки более производительного процессора или увеличения объема памяти, т. е. сделать апгрейд (upgrade) аппаратной части. В этом случае проблема производительности будет решена сама собой.
Если вы сторонник такого подхода, то скорей всего окажетесь в тупике, т. к. будете все время зависеть от аппаратных решений. К слову сказать, многие ожидания насчет производительности новых поколений процессоров, новых типов памяти и архитектур системных шин оказываются явно преувеличенными. Их производительность на практике оказывается ниже декларируемой фирмами-изготовителями. Так, например, новые микросхемы памяти, как правило, превосходят своих предшественников по объему хранимых данных, но отнюдь не по быстродействию. Производительность жестких дисков также растет медленнее, чем их объем.
Если вы разрабатываете коммерческое приложение, то должны учитывать, что у большинства пользователей нет самых последних моделей процессора и быстродействующей памяти. К тому же, далеко не все пользователи горят желанием выложить деньги на новый компьютер, если их вполне устраивает то, что у них уже есть.
Поэтому вряд ли стоит полагаться всерьез на решение проблем с программным обеспечением при помощи только одной закупки нового оборудования.
12
Введение
Далее мы будем рассматривать только алгоритмические и программные методы повышения производительности работы приложений.
Оптимизация может проводиться по следующим направлениям:
? тщательная проработка алгоритма разрабатываемой программы;
? учет существующих аппаратных средств компьютера и использование их оптимальным образом;
? использование средств языка высокого уровня той среды, в которой разрабатывается приложение;
? использование языка низкого уровня, т. е. ассемблера;
? учет специфических особенностей процессора.
Рассмотрим более подробно каждое из этих направлений.
Этап разработки алгоритма вашего приложения — самый сложный во всей цепочке жизненного цикла программы. От того, насколько глубоко продуманы все аспекты вашей задачи, во многом зависит успех ее реализации в виде программного кода. В общем случае изменения в структуре самой программы дают намного больший эффект, чем тонкая настройка программного кода. Идеальных решений не бывает, и разработка алгоритма приложения всегда сопровождается ошибками и недоработками. Здесь важно найти узкие места в алгоритме, наиболее влияющие на производительность работы приложения.
Кроме того, как показывает практика, почти всегда можно найти способ улучшить уже разработанный алгоритм программы. Конечно, лучше всего тщательно разработать алгоритм в начале проектирования, чтобы избежать в дальнейшем многих неприятных последствий, связанных с доработкой фрагментов программного кода в течение короткого промежутка времени. Не жалейте времени на разработку алгоритма приложения — это избавит вас от головной боли при отладке и тестировании программы и сэкономит время. '
Следует иметь в виду, что алгоритм, эффективный с точки зрения производительности программы, практически никогда не соответствует требованиям постановки задачи на все 100%, и наоборот. Неплохие с точки зрения структуры и читабельности алгоритмы, как правило, неэффективны в плане реализации программного кода. Одна из причин — стремление разработчика упростить общую структуру программы за счет использования везде, где только можно, высокоуровневых вложенных структур для вычислений. Упрощение алгоритма в этом случае неизбежно ведет к снижению производительности программы.
Введение
13
В начале разработки алгоритма довольно сложно оценить, каким будет программный код приложения. Чтобы правильно разработать алгоритм программы, необходимо следовать нескольким простым правилам.
? Тщательно изучить задачу, для которой будет разработана программа.
Предыдущая << 1 .. 2 3 4 5 < 6 > 7 8 9 10 11 12 .. 127 >> Следующая