Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Скидка до 20% на услуги дата-центра. Аренда серверной стойки. Colocation от 1U!

Миграция в облако #SotelCloud. Виртуальный сервер в облаке. Выбрать конфигурацию на сайте!

Виртуальная АТС для вашего бизнеса. Приветственные бонусы для новых клиентов!

Виртуальные VPS серверы в РФ и ЕС

Dedicated серверы в РФ и ЕС

По промокоду CITFORUM скидка 30% на заказ VPS\VDS

VPS/VDS серверы. 30 локаций на выбор

Серверы VPS/VDS с большим диском

Хорошие условия для реселлеров

4VPS.SU - VPS в 17-ти странах

2Gbit/s безлимит

Современное железо!

Книги: [Классика] [Базы данных] [Internet/WWW] [Сети] [Программирование] [UNIX] [Windows] [Безопасность] [Графика] [Software Engineering] [ERP-системы] [Hardware]

Техника оптимизации
программ

Эффективное использование
памяти

Касперски К.

Издано: 2003, BHV
Твердый переплет, 560 стр..

Заказать книгу в магазине "Мистраль"
Оглавление
Об авторе
Введение в книгу
Введение в оптимизацию
Профилировка программ
Оперативная память - из глубин времен до наших дней
Проблемы тестирования оперативной памяти
Принципы функционирования SRAM

Оглавление

Введение. Производительность – постановка проблемы. Пути повышения быстродействия программ. Обсуждение целесообразности оптимизации.

Глава 0. Профилировка. Что такое профилировка, обзор современных профилировщиков, создание собственного профилировщика.

Часть 1. Подсистема оперативной памяти. . В этой части рассказывается о принципе работы оперативной памяти, устройствах ее сопряжения с процессором и описываются приемы программирования, позволяющие разогнать память на максимальную производительность.

Глава 1. Иерархия оперативной памяти. Короткий исторический очерк. Типы и уровни иерархии оперативной памяти (библиотеки управления памятью, менеджер куч, менеджер виртуальной памяти, процессор, кэш-контроллер, контроллер памяти, модули памяти).

Глава 2. Устройство и принципы функционирования оперативной памяти. Устройство ядра памяти. Эволюция оперативной памяти: conventional DRAM (Page Mode DRAM) - "обычная" DRAM, эволюция динамической памяти, FPM DRAM (Fast Page Mode DRAM) быстрая страничная память, понятие "формулы памяти", EDO-DRAM (Extended Data Out) память с усовершенствованным выходом, BEDO (Burst EDO) - пакетная EDO RAM, SDRAM (Synchronous DRAM) - синхронная DRAM, DDR SDRAM, SDRAM II (Double Data Rate SDRAM) SDRAM с удвоенной скоростью передачи данных, RDRAM (Rambus DRAM) - Rambus-память. Сравнительная характеристика основных типов памяти.

Глава 3. Взаимодействие памяти и процессора. Устройство типовых наборов системных логик (чипсетов). Типовая схема арбитража и обработки запросов. Узкие места некоторых моделей чипсетов. Вычисление полного времени доступа к памяти. Оптимизация работы с памятью.

Глава 4. Назначение и устройство кэша. Понятие кэша. Краткий исторический очерк. Организация кэша. Понятие ассоциативности кэша. Политика записи. Двухуровневая организация кэширования. Раздельное хранение кода и данных. Буфера записи. Устройство и принципы функционирования кэш-подсистемы процессоров Pentium и Athlon. Архитектура и характеристики кэшей современных процессоров.

Глава 5. Оптимизация обращения к памяти и кэшу. Влияние размера обрабатываемых данных на производительность. Выравнивание данных. Упорядочивание структур данных. Использование упреждающего чтения. Использование преимуществ синхронного чтения. Упорядочивание обращения к памяти. Использование буферов записи.

Глава 6. Управление кэшированием в x86 процессорах старших поколений. Кратный исторический экскурс. Программная предвыборка в процессорах K6+ и P-III+. Предвыборка в процессорах AMD K6++ и VIA C3. Предвыборка в процессорах P-III И P-4. Сводная характеристика инструкций предвыборки различных процессоров. Аппаратная предвыборка в микропроцессоре P-4.

Глава 7. Практическое использование предвыборки. Определение предпочтительной кэш-иерархии. Планирование дистанции предвыборки. Увеличение эффективности предвыборки. Оптимизация структур данных под аппаратную предвыборку.

Глава 8. Секреты копирования памяти или практическое применение новых команд процессоров PENTIUM-III и PENTIUM-4. Оптимизация типовых операций с памятью: Оптимизация копирования памяти. Оптимизация заполнения (инициализации) памяти.

Часть 2. Сравнительный анализ оптимизирующих компиляторов языка Си\Си++. В этой части планируется рассказать о методах автоматической оптимизации и сравнить эффективность машинной и ручной кодогенерации.

Глава 8. Основные методы оптимизации, используемые компиляторами: Оптимизация константных выражений. Замена переменных константными значениями ("размножение" констант). Вычисление значения переменных на стадии компиляции ("свертка" констант). Вычисление значений функций на стадии компиляции ("свертка" функций). Оптимизация алгебраических выражений. Удаление неиспользуемых переменных. Удаление копий переменных. Удаление неиспользуемых присвоений. Удаление лишних выражений. Удаление лишних вызовов функций. Выполнение алгебраических упрощений. Оптимизация подвыражений. Оптимизация арифметических операций. Оптимизация ветвлений. Замена условных переходов арифметическими операциями. Удаление лишних условий. Удаление заведомо ложных условий. Оптимизация switch. Балансировка логического древа. Создание таблиц переходов. Оптимизация циклов. Оптимизация вызова функций. Оптимизация передачи аргументов. Оптимизация пролога/эпилога функций. Оптимизация распределения переменных. Оптимизация инициализации строк. Оптимизация "мертвого" кода. Оптимизация константных условий.

Глава 9. Смертельная схватка: ассемблер vs. компилятор. Краткий экскурс в историю или ассемблер - это всегда весна. Критерии оценки качества машинной оптимизации. Методики оценки качества машинной оптимизации. Сравнительный анализ основных компиляторов. Обсуждение результатов тестирования. Наглядная демонстрация качества машинной оптимизации. Определение ситуаций предпочтительного использования ассемблера. Особое замечание о создании защитного кода на ассемблере. Программирование на ассемблере как особый род творчества.

Часть 3. Приложения

Предметный указатель

Глоссарий

Оглавление
Об авторе
Введение в книгу
Введение в оптимизацию
Профилировка программк
Оперативная память - из глубин времен до наших дней
Проблемы тестирования оперативной памяти
Принципы функционирования SRAM
Заказать книгу в магазине "Мистраль"

Бесплатный конструктор сайтов и Landing Page

Хостинг с DDoS защитой от 2.5$ + Бесплатный SSL и Домен

SSD VPS в Нидерландах под различные задачи от 2.6$

✅ Дешевый VPS-хостинг на AMD EPYC: 1vCore, 3GB DDR4, 15GB NVMe всего за €3,50!

🔥 Anti-DDoS защита 12 Тбит/с!

VPS в России, Европе и США

Бесплатная поддержка и администрирование

Оплата российскими и международными картами

🔥 VPS до 5.7 ГГц под любые задачи с AntiDDoS в 7 локациях

💸 Гифткод CITFORUM (250р на баланс) и попробуйте уже сейчас!

🛒 Скидка 15% на первый платеж (в течение 24ч)

Новости мира IT:

Архив новостей

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 7861149
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2019 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...