Книга: Системное программирование в среде Windows
Учет факторов производительности при организации управленияпамятью
Учет факторов производительности при организации управленияпамятью
Программа 9.1, приведенная в следующей главе, позволяет исследовать различные аспекты производительности в условиях, когда несколько потоков соревнуются между собой за право обладания разделяемыми ресурсами. Аналогичные эффекты будут наблюдаться и в случае, когда потоки привлекаются для управления памятью с использованием функций malloc и free из многопоточной стандартной библиотеки С, поскольку эти функции используют объекты CRITICAL_SECTION для синхронизации доступа к структуре данных кучи (вы можете в этом сами убедиться, просмотрев исходный код библиотеки С). Ниже описаны два возможных способа улучшения производительности.
• Каждый поток, управляющий памятью, может создать дескриптор типа HANDLE для собственной кучи с помощью функции HeapCreate (глава 5). После этого для распределения памяти вместо функций malloc и free можно использовать функции HeapAlloc и HeapFree.
• Значение переменной окружения времени выполнения __MSVCRT_HEAP_SELECT можно установить равным __GLOBAL_HEAP_SELECTED. Это приведет к тому, что функции malloc и free будут использовать для управления памятью схему Windows, которая использует спин-блокировки (spin locks) вместо объектов CS и может быть намного более эффективной. Этот метод был предложен Гербертом Орашем (Gerbert Orasche) в статье "Configuring VC++ Multithreaded Memory Management", опубликованной в майском выпуске журнала Windows Developer's Journal за 2000 год, а представленные в этой статье результаты убедительно свидетельствуют о преимуществах данного метода в отношении производительности.
- Необходимость в синхронизации потоков
- Объекты синхронизации потоков
- Объекты критических участковкода
- Использование объектов CRITICAL_SECTION для защиты разделяемыхпеременных
- Пример: простая система "производитель/потребитель"
- Мьютексы
- Семафоры
- События
- Пример: система "производитель/потребитель"
- Обзор: объекты синхронизации Windows
- Дополнительные рекомендации относительно использования мьютексов и объектов CRITICAL_SECTION
- Другие функции взаимоблокировки
- Учет факторов производительности при организации управленияпамятью
- Резюме
- Упражнения
- Журналы и оповещения производительности
- Повышение производительности приложений с помощью хранимых процедур
- Настройка учетных записей пользователей
- Карточка складского учета
- 4.6. Техники организации знакомства участников на бизнес-тренинге
- Глава 6. Ведение складского учета в программе «Складской учет»
- 3 Учетные записи пользователей
- Определение факторов риска
- Материнская плата имеет возможность организации RAID-массивов из двух SATA-дисков. Можно ли подключить к ней только один...
- Не могу войти в систему под учетной записью администратора, поскольку среди имен пользователей, отображаемых на экране п...
- 2.1. Принципы организации выставочного пространства
- При попытке войти в систему Пользователю1 выдается предупреждение, что загрузился временный профиль и все сделанные изме...