Рекомендации по повышению производительности и возможные риски

Рекомендации по повышению производительности и возможные риски

Многопоточные приложения предоставляют значительные программные преимущества, включая возможность использования более простых моделей программирования и повышение быстродействия программ. Вместе с тем, существует ряд факторов, которые способны оказывать на производительность заметное отрицательное влияние, с трудом поддающееся прогнозированию, причем характер этого влияния может быть различным на различных компьютерах, даже если на них и выполняются одни и те же версии Windows. Некоторые простые рекомендации, суммирующие сведения, изложенные в настоящей главе, помогут вам минимизировать эти риски. Часть этих рекомендаций, равно как и многие из советов по проектированию, отладке и тестированию программ, которые приводятся в следующей главе, в переработанном виде взята из [6].

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

• Используйте для тестирования производительности приложений как можно более широкий круг систем из числа тех, которые доступны вам. Полезно запускать программу с использованием самых различных конфигураций памяти, типов процессоров, версий Windows и количества процессоров. Приложение может продемонстрировать очень высокую производительность на одной системе, но крайне низкую на другой; см. обсуждение программы 9.1.

• Блокирование потребляет значительные системные ресурсы; пользуйтесь этим средством лишь при настоятельной необходимости. Предоставляйте возможность удержания (владения) мьютекса или объекта CS строго в пределах лишь необходимого времени. Варьирование параметров задержки или точек "засыпания" демонстрирует снижение производительности с увеличением длительности периодов блокирования.

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

• Условия высокой состязательности между блокировками затрудняют достижение высокой производительности. Чем выше частота блокирования и разблокирования потоков, тем заметнее снижается производительность. Ухудшение производительности с увеличением количества потоков может быть очень резким, заметно отклоняясь от простой линейной зависимости.

• Объекты CS предоставляют эффективный упрощенный механизм блокирования при небольшом количестве конкурирующих потоков, но в некоторых случаях мьютексы обеспечивают лучшую производительность. При использовании объектов CS в критических по отношению к производительности SMP-приложениях возможно настройка производительности с помощью спин-счетчиков.

• Семафоры могут помочь уменьшить количество конкурирующих активных потоков, не вынуждая вас менять программную модель.

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

• Заметное влияние на производительность оказывает также выбор модели — сигнальной или широковещательной, о чем более подробно говорится в главе 10.

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

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

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

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

Возможные проблемы: зрение

Из книги Компьютер и здоровье автора Баловсяк Надежда Васильевна

Возможные проблемы: зрение Чаще всего при работе за компьютером страдает зрение ребенка – резкое увеличение зрительной нагрузки может быть опасно. Об этом часто говорят врачи–офтальмологи, которые при подозрении на проблемы со зрением рекомендуют ограничивать работу


Некоторые возможные проблемы при включении

Из книги Железо ПК [Популярный самоучитель] автора Пташинский Владимир

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


Возможные затруднения при навигации в Сети

Из книги Windows Vista без напряга автора Жвалевский Андрей Валентинович

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


Возможные затруднения при навигации в Сети

Из книги Windows Vista автора Вавилов Сергей

Возможные затруднения при навигации в Сети Встречаются случаи, когда на некоторых веб-страницах вместо русского текста загружается бессмысленный набор кириллических символов. Это связано с тем, что в вашем браузере страница отображается в неверной кодировке. Чтобы


15.1. Возможные способы подключения к Интернету

Из книги Самоучитель работы на компьютере автора Колисниченко Денис Николаевич

15.1. Возможные способы подключения к Интернету Способов подключения к Интернету много. Мы познакомимся с преимуществами и недостатками наиболее современных способов, а потом рассмотрим настройку самых популярных способов подключения.[6]15.1.1.


Проблемы, возможные при соединении с Интернетом

Из книги Интернет. Новые возможности. Трюки и эффекты [litres] автора Баловсяк Надежда Васильевна

Проблемы, возможные при соединении с Интернетом Наиболее типичные проблемы, которые могут возникать при попытке войти в Сеть.Установка связи не доходит до набора номераВозможно, модем не подключен, не настроен или используется другой программой. ПРИМЕЧАНИЕ Если модем


Возможные ловушки и распространенные ошибки

Из книги Системное программирование в среде Windows автора Харт Джонсон М

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


ГЛАВА 9 Влияние синхронизации на производительность и рекомендации по ее повышению

Из книги VBA для чайников автора Каммингс Стив

ГЛАВА 9 Влияние синхронизации на производительность и рекомендации по ее повышению В предыдущей главе были введены операции синхронизации, использование которых иллюстрировалось с привлечением нескольких относительно простых примеров. В следующей главе предлагаются


Все возможные неприятности происходят обязательно

Из книги Яндекс для всех автора Абрамзон М. Г.

Все возможные неприятности происходят обязательно Программа, создаваемая с помощью VBA (как и любого другого языка программирования), обычно сопровождается тремя следующими типами ошибок.* Ошибки компиляции. Синтаксические и другие ошибки, сразу же делающие невозможным


2.5.3. Возможные ошибки

Из книги Linux: Полное руководство автора Колисниченко Денис Николаевич

2.5.3. Возможные ошибки Но вот ваш почтовый клиент готов к работе. С чем вы при этом можете столкнуться?? Первое — не все приходящие письма будут скачиваться. Это может быть связано с вашими настройками для работы с папкой Спам. Если вы не меняли настройки по умолчанию, все


13.4.2. Возможные проблемы и их решение

Из книги Политики безопасности компании при работе в Интернет автора Петренко Сергей Александрович

13.4.2. Возможные проблемы и их решение Как правило, кэширующий сервер запускается на отдельном компьютере, который подключается к Интернету по коммутируемому соединению. Нужно учитывать, что сервер DNS сразу требует обращения к какому-нибудь сетевому ресурсу. В нашем же


1.5. Возможные постановки задачи

Из книги IT-безопасность: стоит ли рисковать корпорацией? автора Маккарти Линда

1.5. Возможные постановки задачи 1.5.1. Металлургическая компанияЗадача: разработка политики информационной безопасности металлургической компании (далее – «компания»), см. рис. 1.17.Основание: пункт «Разработка и реализация мероприятий по обеспечению информационной


Оценить риски

Из книги Реконизм. Как информационные технологии делают репутацию сильнее власти, а открытость — безопаснее приватности автора Сименко Илья Александрович

Оценить риски Перед тем как перенести информацию с одной платформы на другую, всегда проводите оценку риска. По своей природе одной информации присущ больший риск, чем другой. В нашем случае более рискованной информацией оказались истории болезни.После оценки риска


Нетехнические риски

Из книги Продвижение порталов и интернет-магазинов автора Гроховский Леонид О.


Риски, связанные с работой модераторов

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

Риски, связанные с работой модераторов Несмотря на то что модераторы не столько создают контент, сколько модерируют, их неграмотная работа может привести к самым тяжелым для сформировавшегося на портале сообщества последствиям. Опытные веб-мастера знают немало историй,