Комментарии по поводу функций управления очередью с точки зрения производительности

Комментарии по поводу функций управления очередью с точки зрения производительности

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

• В данной реализации используется широковещательная модель ("вручную сбрасываемое событие/PulseEvent"), обеспечивающая поддержку общего случая, когда один поток может запрашивать или создавать несколько сообщений. Если такая общность не требуется, можно использовать сигнальную модель ("автоматически сбрасываемое событие/SetEvent"), которая, к тому же, обеспечит значительно более высокую производительность, поскольку для тестирования предиката будет освобождаться только один поток. На Web-сайте находится файл QueueObj_Sig.с, содержащий исходный код, в котором вместо широковещательной модели используется сигнальная модель.

• Использование для защиты объекта очереди объекта CRITICAL_SECTION вместо мьютекса также может привести к повышению производительности. Однако в этом случае вместо функции SignalObjectAndWait следует использовать функцию EnterCriticalSection с последующим ожиданием события. Этот альтернативный подход иллюстрируется двумя файлами — QueueObjCS.с и QueueObjCS_Sig.с, находящимися на Web-сайте книги.

• На Web-сайте находятся два других файла с исходными кодами — QueueObj_noSOAW.с и QueueObjSig_noSOAW.с, в которых функция SignalObjectAndWait не используется и которые обеспечивают выполнение программы под управлением Windows 9x.

• Результаты, приведенные в приложении В, свидетельствуют о нелинейном поведении производительности при большом количестве потоков, состязающихся за доступ к очереди. Проекты для каждой из альтернативных стратегий содержатся на Web-сайте книги; эти проекты соответствуют различным вариантам конвейерной системы ThreeStage, описанной в следующих разделах.

•Резюмируя, следует подчеркнуть, что свойства очередей могут быть расширены таким образом, чтобы очередь могла совместно использоваться несколькими процессами и обеспечивать отправку или получение сразу нескольких сообщений за одну операцию. В то же время, некоторого выигрыша в производительности можно добиться за счет использования сигнальной модели, объектов CRITICAL_SECTIONS или функции SignalObjectAndWait. Соответствующие результаты представлены в приложении В. 

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Кибервойна с точки зрения классики жанра

Из книги Журнал `Компьютерра` №723 автора Журнал «Компьютерра»

Кибервойна с точки зрения классики жанра Автор: Ваннах МихаилТо, что человечество вступило в эпоху кибервойн, знают уже не только читатели "КТ", но и широкая публика, вскормленная среднебюджетными технотриллерами. Как же соотносится новомодное - всего-то


1.3 ОБЗОР С ТОЧКИ ЗРЕНИЯ ПОЛЬЗОВАТЕЛЯ

Из книги Архитектура операционной системы UNIX автора Бах Морис Дж

1.3 ОБЗОР С ТОЧКИ ЗРЕНИЯ ПОЛЬЗОВАТЕЛЯ В этом разделе кратко рассматриваются главные детали системы UNIX, в частности файловая система, среда выполнения процессов и элементы структурных блоков (например, каналы). Подробное исследование взаимодействия этих деталей с ядром


С точки зрения программиста

Из книги Добавьте в корзину. Ключевые принципы повышения конверсии веб-сайтов автора Айзенберг Джеффри

С точки зрения программиста В 1970 году С. С. Хассон (S. S. Husson) определил термин «архитектура компьютера» как «характеристики (вычислительной) системы с точки зрения программиста»[ 5 ]. Архитектура включает в себя набор команд, типы данных, операции ввода-вывода и другие


Комментарии по поводу реализации объекта порогового барьера

Из книги Технология XSLT автора Валиков Алексей Николаевич

Комментарии по поводу реализации объекта порогового барьера Возможности реализованного выше объекта порогового барьера в интересах простоты были намеренно ограничены. Вообще говоря, было бы желательно эмулировать объекты Windows следующим образом:• Разрешив объектам


Комментарии по поводу многоступенчатого конвейера

Из книги Программирование для карманных компьютеров автора Волков Владимир Борисович

Комментарии по поводу многоступенчатого конвейера Данная реализация характеризуется некоторыми особенностями, суть которых частично отражена в комментариях, включенных в листинг программы. На эти же особенности обращают ваше внимание и упражнения 10.6, 10.7 и


Комментарии по поводу клиент-серверного процессора командной строки

Из книги Новый ум короля [О компьютерах, мышлении и законах физики] автора Пенроуз Роджер

Комментарии по поводу клиент-серверного процессора командной строки Данное решение характеризуется рядом особенностей и ограничений, которые будут обсуждаться в последующих главах.• Соединяться с сервером и выполнять параллельные запросы могут сразу несколько


Комментарии по поводу многопоточных моделей

Из книги Написание скриптов для Blender 2.49 автора Anders Michel

Комментарии по поводу многопоточных моделей Для описания методов проектирования многопоточных программ используются такие термины, как пул потоков (thread pool), симметричные потоки (symmetric threads) и асимметричная потоковая организация программ (asymmetric threading), а мы при создании


Комментарии по поводу DLL и безопасной многопоточной среды

Из книги автора

Комментарии по поводу DLL и безопасной многопоточной среды • Всякий раз, когда создается новый поток, вызывается функция DllMain с опцией DLL_THREAD_ATTACH, но для основного потока отдельного вызова с опцией DLL_THREAD_ATTACH не существует. В случае основного потока должна использоваться


Анализ сайтов-конкурентов с точки зрения персонажей

Из книги автора

Анализ сайтов-конкурентов с точки зрения персонажей Как бы вы изменили содержимое сайта конференции SES, зная эти обстоятельства?Чтобы лучше понять каждую из Джанет, будет полезно пройтись по аналогичным сайтам и представить, как она себя поведет в каждом конкретном


XML-документы с точки зрения спецификации

Из книги автора

XML-документы с точки зрения спецификации Теперь, когда мы разобрали практически все структурные единицы XML, осталось определить стандартным образом синтаксис для самих XML-документов. Им соответствует продукция document:[1] document ::= prolog element MiscИтак, XML-документ состоит из пролога,


Pocket PC с точки зрения программиста

Из книги автора

Pocket PC с точки зрения программиста Windows CE и Pocket PCДля программиста общение с устройством – это прежде всего общение с его операционной системой. Даже те программисты, которые пишут драйверы на языке ассемблера, машинных кодах или языке C, все равно пишут их для определенной