ТЕХНИКА ОПТИМИЗАЦИИ ПРОГРАММ


         

ТЕХНИКА ОПТИМИЗАЦИИ ПРОГРАММ

ТЕХНИКА ОПТИМИЗАЦИИ ПРОГРАММ ТОМ
Аннотация
Об авторе
О серии книг "Оптимизация"
Том I Оперативная память
Том II Процессор
Том III Автоматическая кодогенерация

Том IV Ввод/вывод
Том V Параллельные вычисления и суперкомпьютеры
Краткая история создания данной книги
Соглашения об условных обозначениях и наименованиях
Pro et contra целесообразности оптимизации
Pro et contra целесообразности оптимизации - 2
Pro et contra целесообразности оптимизации - 3
Pro et contra целесообразности оптимизации - 4
О чем и для кого предназначена эта книга
Как учатся оптимизации

Семь китов оптимизации или Жизненный цикл оптимизации
Правило I
Правило II
Правило III
Правило IV
Правило V
Правило VI
Правило VII
Вредный совет 1 Используйте табличные вычисления вместо расчетов
Распространенные заблуждения

Заблуждение I За меня все оптимизирует мой компилятор!
ЗаблуждениеII Максимальная эффективность
ЗаблуждениеIII Человек, в отличии
ЗаблуждениеIV Процессоры семейства
Часть 0 Профилировка программ
Часть 0 Профилировка программ - 2
Цели и задачи профилировки
Общее время исполнения
Общее время исполнения - 2
Общее время исполнения - 3

Удельное время выполнения
Удельное время выполнения - 2
Информация о пенальти
Информация о пенальти - 2
Информация о пенальти - 3
Информация о пенальти - 4
Информация о пенальти - 5
Определение количества вызовов
Определение степени покрытия
Фундаментальные проблемы профилировки "в малом"

Конвейеризация или пропускная способность vs латентность
Конвейеризация или пропускная способность vs латентность - 2
Неточность измерений
Неточность измерений - 2
Неточность измерений - 3
Неточность измерений - 4
Неточность измерений - 5
* В поисках нуля *
Аппаратная оптимизация
Низкая "разрешающая способность"

Фундаментальные проблемы профилировки "в большом"
Непостоянства времени выполнения
Программное непостоянство
Аппаратное непостоянство
Аппаратное непостоянство - 2
Обработка результатов измерений
Проблема второго прохода
Проблема второго прохода - 2
Проблема второго прохода - 3
Проблема наведенные эффектов

Проблема наведенные эффектов - 2
Краткий обзор современных профилировщиков
Intel VTune
AMD Code Analyst
AMD Code Analyst - 2
Microsoft Profile.exe
Сравнительная характеристика профилировщиков
Пишем собственный профилировщик
Краткое описание профилировщика DoCPUClock
Несколько советов по измерению производительности

Практический сеанс профилировки с VTune в десяти шагах
Практический сеанс профилировки с VTune в десяти шагах - 2
Практический сеанс профилировки с VTune в десяти шагах - 3
Практический сеанс профилировки с VTune в десяти шагах - 4
Практический сеанс профилировки с VTune в десяти шагах - 5
Практический сеанс профилировки с VTune в десяти шагах - 6
Практический сеанс профилировки с VTune в десяти шагах - 7
Практический сеанс профилировки с VTune в десяти шагах - 8
Шаг первый. Удаление printf
Шаг второй. Вынос strlen за тело цикла

Шаг второй. Вынос strlen за тело цикла - 2
Шаг третий. Выравнивание данных
Шаг третий. Выравнивание данных - 2
Шаг третий. Выравнивание данных - 3
Шаг третий. Выравнивание данных - 4
Шаг четвертый. Избавление от strlen
Шаг пятый. Удаление операции деления
Шаг шестой. Удаление мониторинга производительности
Шаг седьмой. Объединение функций
Шаг восьмой. Сокращения операций обращение к памяти

Шаг восьмой. Сокращения операций обращение к памяти - 2
Шаг восьмой. Сокращения операций обращение к памяти - 3
Шаг девятый. VTune – ваш персональный тренер
Шаг девятый. VTune – ваш персональный тренер - 2
Шаг девятый. VTune – ваш персональный тренер - 3
Шаг девятый. VTune – ваш персональный тренер - 4
Шаг девятый. VTune – ваш персональный тренер - 5
Шаг девятый. VTune – ваш персональный тренер - 6
Шаг девятый. VTune – ваш персональный тренер - 7
Шаг девятый. VTune – ваш персональный тренер - 8

Шаг девятый. VTune – ваш персональный тренер - 9
Шаг девятый. VTune – ваш персональный тренер - 10
Шаг девятый. VTune – ваш персональный тренер - 11
Шаг десятый. Заключительный
Шаг десятый. Заключительный - 2
Шаг десятый. Заключительный - 3
Шаг десятый. Заключительный - 4
Шаг десятый. Заключительный - 5
Итоги и прогнозы
A VOL D'OISEAU

Часть IV Приложение I Программистская копилка
Как сделать свои программы надежнее?
Причины и последствия ошибок переполнения
Причины и последствия ошибок переполнения - 2
Переход на другой язык
Использование кучи для создания массивов
Отказ от индикатора завершения
Обработка структурных исключений
Обработка структурных исключений - 2
Традиции vs надежность

Как с ними борются?
Как с ними борются? - 2
Поиск уязвимых программ
Поиск уязвимых программ - 2
Поиск уязвимых программ - 3
Поиск уязвимых программ - 4
Вместо заключения
Архиерей – царство MS-DOS
Сжатие файлов под Windows 9x\NT
Сжатие файлов под Windows 9x\NT - 2

Сжатие файлов под Windows 9x\NT - 3
Измерения падения производительности от сжатия программ (DLL)
Выводы:
Самомодифицирующийся код в современных операционных системах
Архитектура памяти Windows
Архитектура памяти Windows - 2
Использование WriteProcessMemory
Использование WriteProcessMemory - 2
Выполнение кода в стеке
"Подводные камни" перемещаемого кода

"Подводные камни" перемещаемого кода - 2
Елей и деготь оптимизирующих компиляторов
Елей и деготь оптимизирующих компиляторов - 2
Самомодифицирующийся код как средство защиты приложений
Самомодифицирующийся код как средство защиты приложений - 2
Самомодифицирующийся код как средство защиты приложений - 3
Самомодифицирующийся код как средство защиты приложений - 4
Пара слов в заключении
Об одном подходе к решению задач…
Об одном подходе к решению задач… - 2

Секреты Visual Studio
Закладки
Закладки - 2
Содержание