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

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

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

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

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

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

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

Введение
Эта книга посвящена вопросам оптимизации программного обеспечения, написанного на языке C++ .NET, с помощью языка ассемблера. Термин "оптимизация" применительно к процессу разработки и отладки программ подразумевает улучшение каких-либо характеристик работы программного продукта. Под этим термином часто подразумевают и комплекс мер по улучшению показателей производительности программы.
Сам процесс оптимизации программного обеспечения может выполняться как программистом (ручная оптимизация), так и в автоматическом режиме компилятором той среды разработки, в которой производится отладка приложения. Возможен и вариант, когда программист использует программу-отладчик третьей фирмы для выполнения отладки и оптимизации.
Большинство разработчиков понимает, что в условиях жесткой конкуренции вопрос производительности является важнейшим условием успеха или неудачи программы на рынке программных продуктов. Без серьезной работы над улучшением производительности программного кода нельзя обеспечить конкурентоспособность приложения. Хотя все осознают необходимость и важность процесса оптимизации программного обеспечения, эта тема до сих пор является противоречивой и дискуссионной. Все споры вокруг этого процесса в основном затрагивают один вопрос: так ли уж необходимо программисту заниматься ручной оптимизацией своего приложения, если для этого есть готовые аппаратно-программные средства?
Часть программистов считает, что улучшить производительность работы приложения без использования средств отладки самого компилятора нельзя, тем более что все современные компиляторы имеют встроенные (built-in) средства оптимизации программного кода. Отчасти это правда. На сегодняшний день все без исключения программные средства разработки предусматривают использование оптимизационных алгоритмов при генерации исполняемого модуля.
Можно полностью положиться на компилятор ("все сделано до нас"), который сгенерирует для вас оптимальный код, и вообще не заниматься улучшением качества программы. При этом в целом ряде случаев может и не понадобиться никаких доработок и улучшений. Например, при создании небольших офисных приложений или утилит тестирования сети оптимизация обычно не нужна.
Однако в большинстве случаев обойтись без ручной оптимизации и полагаться только на стандартные возможности компиляторов нельзя. С проблемой улучшения производительности, хотите вы этого или нет, вам неизбежно при-
10
Введение
дется столкнуться при разработке более или менее серьезных приложений, например, баз данных, любых. клиент-серверных или сетевых приложений, причем оптимизирующий компилятор той среды, в которой вы работаете, в большинстве случаев значительного выигрыша вам не обеспечит.
Если программист разрабатывает программы, работающие в реальном времени, такие как драйверы устройств, системные службы или промышленные приложения, то без очень серьезной работы по ручной доводке кода до оптимальной производительности задача написания программы просто не будет выполнена. И дело здесь не в том, что средства разработки несовершенны и не обеспечивают того уровня оптимизации, какой от них требуется. Любая более или менее серьезная программа имеет столько взаимосвязанных параметров, что ни одно средство разработки не улучшит ее так, как это может сделать сам программист. Процесс оптимизации программ сродни скорее искусству, чем "чистому" программированию, и трудно поддается алгоритмизации.
Улучшение производительности программ — обычно трудоемкий процесс, занимающий значительное время. Хочется отметить, что не существует единого критерия оптимизации. Более того, сам процесс оптимизации довольно противоречив. Например, если добиться уменьшения объема памяти, используемого программой, то за это придется расплатиться быстродействием работы программы.
Ни одна программа не может быть одновременно сверхбыстрой, сверхмалой по размеру и полнофункциональной для пользователя. К этому можно сколь угодно приблизиться, но получить идеальное приложение вам никогда не удастся.
Хорошие программы обычно сочетают те или иные качества в разумных пропорциях, в зависимости от того, что важнее: скорость выполнения, размер программы (как файла приложения, так и объема памяти, занимаемого работающим приложением) или удобство интерфейса пользователя.
Для многих офисных приложений очень важным показателем является удобство интерфейса пользователя и как можно более высокая функциональность. Например, для пользователя программы электронного телефонного справочника тот факт, что программа работает на 10% быстрее или медленнее, особого значения не имеет. Размер такой программы, в принципе, не критичен и также не имеет особого значения, т. к. объем современных жестких дисков достаточно большой, чтобы поместить десятки и даже сотни таких электронных справочников. Программе может быть необходимо десятки мегабайт оперативной памяти для работы — это тоже сейчас не проблема. Но вот возможность удобной манипуляции данными для пользователя будет очень важной.
Если приложение использует клиент-серверную модель обработки данных и взаимодействия с пользователем, как, например, большинство сетевых при-
Предыдущая << 1 .. 2 3 4 < 5 > 6 7 8 9 10 11 .. 127 >> Следующая