Рекомендации по повышению производительности и возможные риски
Рекомендации по повышению производительности и возможные риски
Многопоточные приложения предоставляют значительные программные преимущества, включая возможность использования более простых моделей программирования и повышение быстродействия программ. Вместе с тем, существует ряд факторов, которые способны оказывать на производительность заметное отрицательное влияние, с трудом поддающееся прогнозированию, причем характер этого влияния может быть различным на различных компьютерах, даже если на них и выполняются одни и те же версии Windows. Некоторые простые рекомендации, суммирующие сведения, изложенные в настоящей главе, помогут вам минимизировать эти риски. Часть этих рекомендаций, равно как и многие из советов по проектированию, отладке и тестированию программ, которые приводятся в следующей главе, в переработанном виде взята из [6].
• Критически относитесь к аргументации предположительного и теоретического характера, касающейся вопросов производительности, которая часто звучит убедительно, но на практике оказывается ошибочной. Проверяйте предположения на простых прототипах программ, таких как TimedMutualExclusion, или проверяйте их действенность на альтернативных вариантах реализации своего приложения.
• Используйте для тестирования производительности приложений как можно более широкий круг систем из числа тех, которые доступны вам. Полезно запускать программу с использованием самых различных конфигураций памяти, типов процессоров, версий Windows и количества процессоров. Приложение может продемонстрировать очень высокую производительность на одной системе, но крайне низкую на другой; см. обсуждение программы 9.1.
• Блокирование потребляет значительные системные ресурсы; пользуйтесь этим средством лишь при настоятельной необходимости. Предоставляйте возможность удержания (владения) мьютекса или объекта CS строго в пределах лишь необходимого времени. Варьирование параметров задержки или точек "засыпания" демонстрирует снижение производительности с увеличением длительности периодов блокирования.
• Используйте различные мьютексы для различных ресурсов, чтобы уменьшить степень детализации блокировок настолько, насколько это возможно. В частности, старайтесь не использовать глобальные блокировки.
• Условия высокой состязательности между блокировками затрудняют достижение высокой производительности. Чем выше частота блокирования и разблокирования потоков, тем заметнее снижается производительность. Ухудшение производительности с увеличением количества потоков может быть очень резким, заметно отклоняясь от простой линейной зависимости.
• Объекты CS предоставляют эффективный упрощенный механизм блокирования при небольшом количестве конкурирующих потоков, но в некоторых случаях мьютексы обеспечивают лучшую производительность. При использовании объектов CS в критических по отношению к производительности SMP-приложениях возможно настройка производительности с помощью спин-счетчиков.
• Семафоры могут помочь уменьшить количество конкурирующих активных потоков, не вынуждая вас менять программную модель.
• Переход на SMP-систему может приводить к неожиданному ухудшению производительности в тех случаях, когда производительность, казалось бы, могла только улучшиться. Сохранить приемлемую производительность в подобных ситуациях позволяют методики, уменьшающие состязательность между потоками и использующие маски родства потоков.
• Заметное влияние на производительность оказывает также выбор модели — сигнальной или широковещательной, о чем более подробно говорится в главе 10.
• Используйте доступные стандартные программы протоколирования, позволяющие оценивать время выполнения различных функций и анализировать факторы, влияющие на производительность, что поможет вам лучше представить себе поведение потоков в вашей программе и определить участки кода, выполнение которых занимает наибольшее время.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Возможные ловушки и распространенные ошибки
Возможные ловушки и распространенные ошибки Существует ряд факторов, о которых следует всегда помнить при разработке многопоточных программ. Пренебрежение некоторыми базовыми принципами может привести к появлению серьезных дефектов в программе, и лучше заранее
ГЛАВА 9 Влияние синхронизации на производительность и рекомендации по ее повышению
ГЛАВА 9 Влияние синхронизации на производительность и рекомендации по ее повышению В предыдущей главе были введены операции синхронизации, использование которых иллюстрировалось с привлечением нескольких относительно простых примеров. В следующей главе предлагаются
1.5. Возможные постановки задачи
1.5. Возможные постановки задачи 1.5.1. Металлургическая компанияЗадача: разработка политики информационной безопасности металлургической компании (далее – «компания»), см. рис. 1.17.Основание: пункт «Разработка и реализация мероприятий по обеспечению информационной
Возможные затруднения при навигации в Сети
Возможные затруднения при навигации в Сети Встречаются случаи, когда на некоторых веб-страницах вместо русского текста загружается бессмысленный набор кириллических символов. Это связано с тем, что в вашем браузере страница отображается в неверной кодировке. Чтобы
Проблемы, возможные при соединении с Интернетом
Проблемы, возможные при соединении с Интернетом Наиболее типичные проблемы, которые могут возникать при попытке войти в Сеть.Установка связи не доходит до набора номераВозможно, модем не подключен, не настроен или используется другой программой. ПРИМЕЧАНИЕ Если модем
13.4.2. Возможные проблемы и их решение
13.4.2. Возможные проблемы и их решение Как правило, кэширующий сервер запускается на отдельном компьютере, который подключается к Интернету по коммутируемому соединению. Нужно учитывать, что сервер DNS сразу требует обращения к какому-нибудь сетевому ресурсу. В нашем же
2.5.3. Возможные ошибки
2.5.3. Возможные ошибки Но вот ваш почтовый клиент готов к работе. С чем вы при этом можете столкнуться?? Первое — не все приходящие письма будут скачиваться. Это может быть связано с вашими настройками для работы с папкой Спам. Если вы не меняли настройки по умолчанию, все
Риски, связанные с работой модераторов
Риски, связанные с работой модераторов Несмотря на то что модераторы не столько создают контент, сколько модерируют, их неграмотная работа может привести к самым тяжелым для сформировавшегося на портале сообщества последствиям. Опытные веб-мастера знают немало историй,
Возможные затруднения при навигации в Сети
Возможные затруднения при навигации в Сети Встречаются случаи, когда на веб-страницах вместо русского текста загружается бессмысленный набор символов. Это не эльфийский диалект и не вирус. Просто браузер не понял, на каком языке написана страница. Умные люди говорят в
Все возможные неприятности происходят обязательно
Все возможные неприятности происходят обязательно Программа, создаваемая с помощью VBA (как и любого другого языка программирования), обычно сопровождается тремя следующими типами ошибок.* Ошибки компиляции. Синтаксические и другие ошибки, сразу же делающие невозможным
15.1. Возможные способы подключения к Интернету
15.1. Возможные способы подключения к Интернету Способов подключения к Интернету много. Мы познакомимся с преимуществами и недостатками наиболее современных способов, а потом рассмотрим настройку самых популярных способов подключения.[6]15.1.1.
Некоторые возможные проблемы при включении
Некоторые возможные проблемы при включении Рассмотрим, с какими проблемами вы можете столкнуться при включении компьютера.• Вы нажимаете кнопку включения, но ничего не происходит.– Не паникуйте. Первым делом проверьте, не забыли ли вы включить провода электропитания
Оценить риски
Оценить риски Перед тем как перенести информацию с одной платформы на другую, всегда проводите оценку риска. По своей природе одной информации присущ больший риск, чем другой. В нашем случае более рискованной информацией оказались истории болезни.После оценки риска
Возможные проблемы: зрение
Возможные проблемы: зрение Чаще всего при работе за компьютером страдает зрение ребенка – резкое увеличение зрительной нагрузки может быть опасно. Об этом часто говорят врачи–офтальмологи, которые при подозрении на проблемы со зрением рекомендуют ограничивать работу