Профилирование — сбор характеристик работы программы, таких как время выполнения отдельных фрагментов (обычно подпрограмм), число верно предсказанных условных переходов, число кэш-промахов и т. д. Инструмент, используемый для анализа работы, называют профилировщиком или профайлером (англ. profiler). Обычно выполняется совместно с оптимизацией программы.

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

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

Также выделяют анализ покрытия (Code Coverage) — процесс выявления неиспользуемых участков кода при помощи, например, многократного запуска программы.

Пример программ, профилирующих производительность

править
Список: List of performance analysis tools(англ.))

Многоплатформенные универсальные решения:

  • gprof[англ.] (Linux/Unix/*BSD) — несколько реализаций традиционного профилировщика, требующие инструментирования программы компилятором.
  • VTune (Windows/Linux) — коммерческий продукт компании Intel
  • Intel® Single Event API (Windows/Linux/Android/MAC OS/...) — некоммерческий продукт компании Intel с открытым исходным кодом
  • CodeAnalyst (Windows/Linux) — бесплатная программа от компании AMD

Решения для отдельных операционных систем

  • AQtime (Windows)
  • Instruments[англ.] (ранее Shark; Mac OS X)
  • Perf (Linux)[англ.] — реализованная в ядре Linux система профилирования процессов и ядра
  • oprofile (Linux) — более ранний системный профилировщик Linux
  • Valgrind (Linux) — средство динамического двоичного анализа программ, содержит 2 плагина для профилирования производительности — Cachegrind и Callgrind.

Для отдельных языков программирования (подобные инструменты могут быть встроены в среду разработки):

  • Xdebug — средство профилирования PHP скриптов.
  • XHProf — профилировщик для языка PHP.

Пример программ, профилирующих потребление памяти:

  • dotMemory (.NET)
  • Valgrind (Linux) — несколько плагинов для профилирования памяти.

Ссылки

править

📚 Artikel Terkait di Wikipedia

Евровидение-2024

Победителем конкурса стала Швейцария, которую представлял певец Немо с песней «The Code». Второе место занял представитель Хорватии исполнитель Baby Lasagna с песней

Википедия

 — «A topic is presumed to be notable if it has received significant coverage in reliable secondary sources that are independent of the subject». Дата

Кабал

2017. Архивировано 4 марта 2016 года. Amends - Rage Quitter 87's Cartoon Coverage (англ.). Rage Quitter 87's Sites. Дата обращения: 8 августа 2018. Архивировано

Брюэль, Патрик

Series of Poker Presented by Jack Link's Beef Jerky - Official Tournament Coverage and Results - . web.archive.org (19 сентября 2009). Дата обращения: 19

Visual Studio Team System

Инструменты Visual Studio такие как Code Analysis (анализ кода), Test Tools (инструменты для тестирования) и Code Coverage (покрытие кода) могут быть использованы

Moonlight Shadow

бесчисленное множество кавер-версий на «Moonlight Shadow», включая трек Groove Coverage и The Shadows (группа, оказавшая сильное влияние на творчество Олдфилда)

Кано (Mortal Kombat)

Дата обращения: 25 августа 2013. Familiar Red - Rage Quitter 87's Cartoon Coverage (англ.). Rage Quitter 87's Sites. Дата обращения: 18 августа 2018. Архивировано

Халк Хоган

reunion, Hulk Hogan, TNA Knockout Title match, more surprises - ongoing coverage . www.pwtorch.com. Дата обращения: 25 июля 2025. PWTorch.com - TNA IMPACT