Книга: Системное программирование в среде Windows
Модельная программа для исследования факторов производительности
Модельная программа для исследования факторов производительности
На Web-сайте книги находится проект TimedMutualExclusion, который вы можете использовать для проведения собственных экспериментов с различными моделями "хозяин/рабочий" и характеристиками прикладных приложений. Ниже приводится перечень возможностей этой программы, которыми можно управлять из командной строки.
• Использование объектов CS или мьютексов.
• Глубина, или рекурсивность, счетчиков.
• Время удержания блокировки, или задержка (delay), которое моделирует объем работы, выполненной в пределах критического участка кода.
• Количество рабочих потоков, ограниченное системными ресурсами.
• Количество точек "засыпания" (sleep points), в которых рабочий поток уступает процессор, используя вызов Sleep(0), но продолжает владеть блокировкой. Точки "засыпания" моделируют ожидание рабочим потоком операций ввода/вывода или событий, тогда как задержка моделирует активность ЦП.
• Количество активных потоков, о чем говорится в разделе, посвященном дросселированию семафоров.
Регулируя параметры задержек и точек "засыпания", можно оказывать заметное воздействие на производительность, поскольку от этих параметров зависит доля времени, в течение которого поток владеет блокировкой, не давая выполняться другим потокам.
В листинг программы включены детальные комментарии, объясняющие порядок запуска программы и настройки параметров. В упражнении 9.1 вам предлагается провести самостоятельные эксперименты с использованием как можно большего количества различных систем, к которым у вас имеется доступ. Видоизмененный вариант этой программы под названием MutualExclusionSC поддерживает спин-счетчики, о которых говорится в следующем разделе.
Примечание
Программа TimedMutualExclusion представляет простую модель, способную отражать многие из особенностей рабочих потоков. Во многих случаях ее можно настроить так, чтобы она представляла реальное приложение, и если эта модель позволяет выявить определенные проблемы, связанные с ухудшением производительности, то не исключено, что с аналогичными трудностями вы столкнетесь и в случае реального приложения. С другой стороны, хорошие эксплуатационные показатели модели вовсе не обязательно означают, что такими же качествами будет обладать и реальное приложение, хотя хорошая исходная модель и способна упростить настройку его производительности.
- Влияние синхронизации на производительность
- Модельная программа для исследования факторов производительности
- Настройка производительности SMP-систем с помощью спин-счетчиков
- Дросселирование семафора для уменьшения состязательности между потоками
- Родство процессоров
- Порты завершения ввода/вывода
- Рекомендации по повышению производительности и возможные риски
- Резюме
- Упражнения
- Глава 12 Как добиться максимальной производительности
- Глава 4. Маркетинговые и полевые исследования
- Журналы и оповещения производительности
- Повышение производительности приложений с помощью хранимых процедур
- 2.2. Современные методы исследования эффективности рекламы
- Программа «Тайный покупатель»
- Программа Victoria
- Подпрограмма обработки прерывания
- Определение факторов риска
- Магическая программа, или Беспорядок по расписанию
- Что делать, если вместо русских букв в программах – непонятные символы?
- Как называется программа, которая устанавливает Windows за 5 минут?