Книга: Системное программирование в среде Windows
Потоки и производительность
Потоки и производительность
Программы grepMP и grepMT по своей структуре и сложности сопоставимы друг с другом, однако, как и следовало ожидать, программа grepMT характеризуется более высокой производительностью, так как переключение между потоками осуществляется ядром намного эффективнее, чем переключение между процессами. В приложении В показано, что эти теоретические ожидания отвечают действительности, и это особенно заметно в тех случаях, когда файлы размещены на различных дисках. Оба варианта реализации способны работать в SMP-системах, существенно улучшая показатели производительности в терминах общего времени выполнения (истекшего времени); потоки, независимо от того, принадлежат ли они одному и тому же или разным процессам, параллельно выполняются на различных процессорах. Измеренное пользовательское время в действительности превышает общее время выполнения, поскольку рассчитывается в виде суммарной величины для всех процессоров.
В то же время, существует весьма распространенное заблуждение, суть которого состоит в том, что отмеченный параллелизм, независимо от того, касается ли он использования нескольких процессов, как в случае grepMP, или же применения нескольких потоков, как в случае grepMT, способен приводить к повышению производительности лишь в случае SMP-систем. Выигрыш в производительности можно получить и при использовании нескольких дисков, а также при любом другом распараллеливании в системе хранения. Во всех подобных случаях операции ввода/вывода с участием нескольких файлов будут осуществляться в параллельном режиме.
- Обзор потоков
- Основные сведения о потоках
- Управление потоками
- Использование библиотеки С впотоках
- Пример: многопоточный поиск контекста
- Потоки и производительность
- Модель "хозяин/рабочий" и другие модели многопоточных приложений
- Пример: применение принципа "разделяй и властвуй" для решения задачи сортировки слиянием в SMP-системах
- Производительность
- Локальные области хранения потоков
- Приоритеты процессов и потоков и планирование выполнения
- Состояния потоков
- Возможные ловушки и распространенные ошибки
- Ожидание в течение конечного интервала времени
- Облегченные потоки
- Резюме
- Упражнения
- ГЛАВА 7 Потоки и планирование выполнения
- Производительность
- Облегченные потоки
- ГЛАВА 9 Производительность и многопоточное выполнение
- Производительность и многопоточное выполнение
- Глава 4 Потоки
- Основные "рычаги" управления производительностью
- Улучшенная производительность
- Стандартные потоки: stdin, stdout, stdeir, stdaux, stdprn.
- 1.2 Процесс, контекст процесса и потоки
- Как сравнить производительность моего компьютера с остальными?
- Производительность и надежность