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


Содержание


ТЕХНИКА ОПТИМИЗАЦИИ ПРОГРАММ ТОМ
Аннотация
Об авторе
О серии книг "Оптимизация"
Том 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



Начало