Для установки нажмите кнопочку Установить расширение. И это всё.

Исходный код расширения WIKI 2 регулярно проверяется специалистами Mozilla Foundation, Google и Apple. Вы также можете это сделать в любой момент.

4,5
Келли Слэйтон
Мои поздравления с отличным проектом... что за великолепная идея!
Александр Григорьевский
Я использую WIKI 2 каждый день
и почти забыл как выглядит оригинальная Википедия.
Статистика
На русском, статей
Улучшено за 24 ч.
Добавлено за 24 ч.
Альтернативы
Недавние
Show all languages
Что мы делаем. Каждая страница проходит через несколько сотен совершенствующих техник. Совершенно та же Википедия. Только лучше.
.
Лео
Ньютон
Яркие
Мягкие

Хот-спот (программирование)

Из Википедии — свободной энциклопедии

У этого термина существуют и другие значения, см. Хот-спот.

Хот-спот (англ. hotspot[1]) — участок кода в программе, на который приходится бо́льшая часть исполняемых инструкций процессора[2] или на исполнение которого процессор затрачивает очень много времени[3] (одни инструкции исполняются быстрее, а другие — медленнее). Хот-споты могут являться узкими местами программы, если на них приходится лишняя нагрузка из-за неэффективности кода, — в таком случае они могут быть подвергнуты оптимизации[3].

Излишне ресурсоёмкие участки кода

Излишне ресурсоёмкие участки кода («узкие места» программы) могут быть следствием выбора более медленного алгоритма решения задачи, не до конца продуманной архитектуры приложения, особенностей работы микропроцессора, следствием ожидания операций ввода-вывода и т.п.

Примером ресурсоёмкого участка кода из-за ошибки в архитектуре приложения может служить использование спинлока в первом потоке для получения результата от второго потока, занимающегося вычислениями, при условии, что первому потоку был назначен максимально высокий приоритет (взаимодействие с пользователем), а второму, — максимально низкий (фоновые вычисления). Т.к. спинлок представляет из себя бесконечный цикл опроса значения переменной, а приоритет процесса высокий, то планировщик будет бо́льшую часть времени выделять на исполнение первого процесса, а второму процессу будет выделяться гораздо меньше процессорного времени. В результате большая часть процессорного времени будет потрачена впустую. Решением проблемы в данном случае служило бы использование блокирующего семафора вместо спинлока, либо смена приоритетов у потоков.

Выявление ресурсоёмких участков

Выявление и анализ «горячих точек» программы может указать направления для её дальнейшей оптимизации[2].

Глубокий анализ может быть произведён отдельно для различных архитектур процессора и может включать в себя анализ нагрузки на различные уровни кэша процессора, анализ шаблонов доступа к памяти, изучение счётчика утилизации циклов процессора и т.п.[2]

Для выявления ресурсоёмких участков в программе используются специальные программы, называемые профилировщиками (профайлерами).

Самыми известными профайлерами в операционных системах семейства Unix являются gprof[en] и Callgrind. В Linux дополнительно доступны OProfile и perf. Во многих развитых интегрированных средах разработки имеются встроенные профилировщики, например, в Microsoft Visual Studio, NetBeans и т.п.

Существует два основных способа профилирования: через анализ времени исполнения кода (Callgrind) и через счётчики производительности процессора (OProfile). Первый способ позволяет находить код, который долго исполняется по времени (например, длительная блокировка по семафору). Второй способ позволяет находить участки кода, которые более остальных нагружают процессор (например, ресурсоёмкие вычисления). Используя оба метода можно анализировать участки кода для понимания причин, по которым они слишком долго исполняются. Если функция исполняется долго, но по счётчикам производительности процессора почти не нагружает процессор, — в ней может происходить длительная блокировка, либо длительный системный вызов к ядру операционной системы.

См. также

Примечания

  1. Evaluate performance for Linux on POWER (англ.). www.ibm.com (12 June 2012). Дата обращения: 23 января 2016.
  2. 1 2 3 Измерение производительности Linux на компьютерах POWER. www.ibm.com (17 января 2013). Дата обращения: 6 января 2016.
  3. 1 2 Планирование параллельной оптимизации | Intel® Developer Zone. software.intel.com. Дата обращения: 6 января 2016.

Ссылки

Эта страница в последний раз была отредактирована 7 января 2019 в 16:57.
Основа этой страницы находится в Википедии. Текст доступен по лицензии CC BY-SA 3.0 Unported License. Нетекстовые медиаданные доступны под собственными лицензиями. Wikipedia® — зарегистрированный товарный знак организации Wikimedia Foundation, Inc. WIKI 2 является независимой компанией и не аффилирована с Фондом Викимедиа (Wikimedia Foundation).