Список инструментов анализа производительности - List of performance analysis tools

Это список анализ производительности инструменты для использования в разработка программного обеспечения.

Общего назначения, не зависит от языка

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

  • время (Unix) - может использоваться для определения времени выполнения программы, отдельно подсчитывая время пользователя и системное время, а время процессора и время часов.[1]
  • timem (Unix) - может использоваться для определения времени настенных часов, времени процессора и загрузки процессора аналогично время (Unix) но поддерживает множество расширений.
    • Поддерживает отчетный пик размер резидентского набора, основные и второстепенные ошибки страницы, приоритетное и добровольное переключение контекста через Getrusage.
    • Поддерживает выборку procfs о вспомогательных системах для отчетности по таким показателям, как размер резидентского набора, размер виртуальной памяти, байты чтения и записи и т. д.
    • Поддерживает сбор аппаратных счетчиков при построении с ПАПИ поддерживать.

Несколько языков

Следующие инструменты работают с несколькими языками или двоичными файлами.

Имя / ПроизводительОперационные системыКомпилятор / языкЧто оно делаетЛицензия
Arm MAPLinuxПриложения C, C ++, Fortran / Fortran90 и Python.Профилировщик производительности. Показывает затраты на ввод-вывод, связь, использование операций с плавающей запятой и доступ к памяти.

Поддерживает многопоточные и многопроцессорные приложения, например, с MPI или OpenMP параллелизм и масштабирование до очень большого количества узлов.

Проприетарный
AppDynamics от CiscoLinux, Windows, iOS, Android, Azure, AWS, AIX.NET, Java, PHP, HTML5, ObjectiveC / iOS, Java / Android, C / C ++, Apache, Nginx, Cassandra, базы данныхУвидеть Управление производительностью приложений.Проприетарный
AQtime от Программное обеспечение SmartBearWindowsПриложения .NET от 1.0 до 4.0 (включая приложения ASP.NET), приложения Silverlight 4.0, 32- и 64-разрядные приложения Windows, включая C, C ++, Delphi для функций Win32 и VBScript и JScriptПрофилировщик производительности и набор инструментов для отладки памяти / ресурсов.Проприетарный
CodeAnalyst от AMDLinux, WindowsC, C ++, Objective C .NET, Java (работает на уровне исполняемых файлов)AMD uProf заменяет CodeAnalyst и CodeXL для профилирования ЦП и мощности на процессорах AMD.


Профилировщик кода на основе графического интерфейса пользователя; выполняет только базовое профилирование на основе таймера на процессорах Intel. На основе OProfile.

Свободный / открытый исходный код (GPL) или проприетарный
AMD CodeXL от AMDLinux, WindowsДля профилирования и отладки графического процессора: OpenCL.Набор инструментов для профилирования графического процессора, отладчик графического процессора и статический анализатор ядра.Свободный / открытый исходный код (MIT)
AMD uProf от AMDLinux, WindowsC, C ++, .NET, Java, ФортранПрофилировщик кода, выполняет профилирование на основе выборки на процессорах AMD.Проприетарный
DevPartner от Borland / Микро Фокус.NET, JavaНабор тестов, который автоматически обнаруживает и диагностирует дефекты программного обеспечения и проблемы с производительностью.Проприетарный
DTrace от Sun MicrosystemsСолярис, Linux, BSD, macOSКомплексная среда динамической трассировки для устранения проблем ядра и приложений в производственных системах в режиме реального времени.Бесплатно / с открытым исходным кодом (CDDL )
ДинамоРИО по РИОLinux, WindowsДинамический двоичный приборы рамки для развития динамический анализ программы инструменты.Бесплатно / с открытым исходным кодом - BSD
DynatraceLinux, Windows, iOS, Android, Azure, AWS, AIX, Solaris, HP / UX, zOS, zLinux.NET, Java, PHP, HTML5, Ajax (для веб-сайтов), Objective-C / iOS, Java / Android, C / C ++, CICS, Apache, Nginx, Cassandra, Hadoop, MongoDB, HBaseУвидеть Управление производительностью приложений.Проприетарный
ExtraeLinux, AndroidВ первую очередь C / C ++ / Fortran, но может профилировать любое приложение, связывающееся с поддерживаемыми параллельными библиотеками (например, MPI4PY)Инструмент анализа производительности HPC со средством просмотра и вспомогательными утилитами. В первую очередь разработан для параллельных приложений с поддержкой MPI, OpenMP, CUDA, OpenCL, pthreads и OmpS. Дополнительные функции включают отслеживание пользовательских функций и захват аппаратных событий через PAPI.Бесплатно / с открытым исходным кодом - LGPL-2.1
FusionReactorLinux, Windows, macOS, AWS, Azure, Google CloudJava, ColdFusion, Apache, MongoDB Работает с любым языком, поддерживаемым JVMВыполняет Управление производительностью приложений и анализ производительности и первопричин. Сочетает в себе APM и инструменты для разработки низкого уровня; также включает отладчик и профилировщики Java, памяти, потоков и ЦП.Проприетарный
GlowCodeWindows64-битные и 32-битные приложения, C, C ++, .NET и библиотеки DLL, созданные компилятором любого языка.Профилировщик производительности и памяти, который определяет трудоемкие функции и обнаруживает утечки и ошибки памяти.Проприетарный
гпрофLinux / UnixЛюбой язык, поддерживаемый gccНесколько инструментов с комбинированной выборкой и профилированием графа вызовов. Набор инструментов визуализации, Инструменты VCG, использует интерфейс рисования графа вызовов (CGDI) для взаимодействия с gprof. Другой инструмент визуализации, который взаимодействует с gprof, - это КПроф.Свободный / открытый исходный код - версия BSD является частью 4.2BSD и версия GNU является частью GNU Binutils (от Проект GNU )
InstanaLinux, Windows, iOS, Android, Azure, AWS, AIX, Solaris, HP / UX, zOS, zLinux.NET, .Net ядро, Java, PHP, Ruby, Python, Crystal, Scala, Kotlin, Clojure, Haskell, Node.js, веб-браузер, Apache, Nginx, Cassandra, Hadoop, MongoDB, Elasticsearch, KafkaУвидеть Управление производительностью приложений.Проприетарный
Инструменты с XcodemacOSПриложения C, C ++, Objective-C / C ++, Swift, Какао.Инструменты отображают временную шкалу, отображающую любое событие, происходящее в приложении, например изменение активности ЦП, выделение памяти, а также активность сети и файлов, вместе с графиками и статистикой.

Группа событий отслеживается путем выбора конкретных инструментов из: Активность файла, Распределение памяти, Профилировщик времени, Активность графического процессора и т. Д. Для общесистемного воздействия исполняемого файла: Системная трассировка, Использование системы, Использование сети, Журнал энергопотребления и т. Д. Полезны.

Свободный. Собственный. В комплекте с Xcode, который также является бесплатным.
Советник IntelLinux и Windows. Просмотрщик только на macOS.C, C ++ и ФортранОптимизация векторизации (SIMD). Найдите горячие петли, определите, что блокирует векторизацию, проверьте наличие зависимостей, переносимых петлями, проанализируйте шаблоны доступа к памяти и оптимизируйте шаг и объем памяти. Включает анализ линии крыши с учетом кеширования.

Также включает в себя Flow Graph Analyzer для создания и анализа графиков потоков данных и вычислений зависимостей.

Бесплатное и проприетарное ПО. Входит в состав Intel Parallel Studio.
Набор инструментов трассировки Linux (LTT)LinuxТребуется исправленное ядроСобирает данные о блокировке процессов, переключениях контекста и времени выполнения. Это помогает выявить проблемы с производительностью в нескольких процессах или потоках. Заменено LTTng.GPL
LTTng (Linux Trace Toolkit следующего поколения)LinuxСистемный программный комплекс для коррелированного отслеживания ядра, приложений и библиотек.GPL / LGPL / MIT
OProfileLinuxПрофилирует все, что работает в системе Linux, включая трудно профилируемые программы, такие как обработчики прерываний и само ядро.Профилировщик выборки для Linux, который подсчитывает промахи кеша, задержки, выборки памяти и т. Д.Открытый исходный код GPLv2
Oracle Solaris Studio Анализатор производительностиLinux, SolarisC, C ++, Fortran, Java; MPIПрофайлер производительности и памяти.Проприетарное бесплатное ПО
инструменты perfЯдро Linux 2.6.31+Профилировщик выборки с поддержкой аппаратных событий на нескольких архитектурах.GPL
Интерфейс программирования приложений производительности (PAPI)РазличныйБиблиотека аппаратных счетчиков производительности на современных микропроцессорах.
LIKWIDLinuxC / C ++, Fortran, Python, Java и LuaНабор инструментов командной строки и библиотеки для программистов, ориентированных на производительность (мониторинг производительности оборудования, контроль соответствия и т. Д.).GPLv3
Штырь от IntelLinux, Windows, macOS, AndroidСистема динамических бинарных инструментов, которая позволяет пользователям создавать собственные инструменты анализа программ.Запатентованный, но бесплатный для некоммерческого использования
Рациональный PurifyPlusAIX, Linux, Solaris, WindowsИнструмент профилирования производительности, отладчик памяти и покрытие кода орудие труда.Проприетарный
СкаласкаLinuxC / C ++, ФортранАнализатор параллельных трасс.Бесплатно / с открытым исходным кодом (лицензия BSD)
Акула от ApplemacOS (выпуск прекращен с версии 10.7)Анализатор производительности.Проприетарное бесплатное ПО
Сверхсветовая производительностьWindows, Xbox, PlayStationC, C ++, RustПрофилировщик гибридного отбора проб и инструментов, созданный с учетом удобства использования и масштабируемости.Проприетарный
SystemtapLinuxПрограммируемый инструмент отслеживания / зондирования системы; может быть написан в виде сценария для генерации профилей ядра и / или его пользовательского пространства на основе времени, счетчика производительности или функций.Открытый исходный код
временная памятьLinux, macOS, WindowsC, C ++, Python, ФортранМодульный набор инструментов C ++ для создания масштабируемых настраиваемых инструментов и инструментов выборки для анализа производительности. Разработан для минимизации накладных расходов за счет адаптации к интерфейсу каждого компонента анализа производительности во время компиляции и упрощения добавления поддержки вызовов и хранения данных в многопоточных и многопроцессорных средах выполнения. Включает множество встроенных компонентов для синхронизации, использования ресурсов, аппаратных счетчиков, Модель крыши, и инструментальные API для VTune, Советник Intel, LIKWID, и Arm MAP, среди прочего. Компоненты могут быть произвольно объединены в единый дескриптор для коллективных вызовов и широковещательной рассылки входных аргументов. Привязки Python предоставляются для каждого компонента в виде отдельного класса для реализации инструментов профилирования Python с низкими накладными расходами. Профилирование с помощью динамических инструментов доступно в Linux.Бесплатная / с открытым исходным кодом (MIT)
ВалгриндLinux, macOS, Solaris, AndroidЛюбые, включая ассемблерСистема отладки и профилирования; поддерживает инструменты для обнаружения ошибок управления памятью и потоковой передачи или профилирования производительности (cachegrind и callgrind). KCacheGrind, valkyrie и alleyoop - это интерфейсы для valgrind.Свободный / открытый исходный код (GPL)
VTune Профайлер Корпорация Intel

(бывший усилитель VTune)

Linux, Windows, просмотрщик только для macOSC, C ++, C #, Fortran, .NET, Java, Python, Go, сборка ASMНабор анализов профилирования, реализованных с использованием технологий выборки, контрольно-измерительной аппаратуры и процессора. Включает анализ горячих точек, потоков, высокопроизводительных вычислений, ввода-вывода, FPGA, графического процессора, системы, регулирования и микроархитектуры.Бесплатное и проприетарное ПО. Также доступен в составе Intel Parallel Studio.


Набор средств анализа производительности Windows от MicrosoftWindowsПроприетарное бесплатное ПО
Повернуть вправоLinux, macOS, просмотрщик только для WindowsПоддерживает большинство компилируемых языков на процессорах ARM и x86.Графический и статистический профилировщик (на основе событий) из командной строки.
VisualSimLinux, macOS, Microsoft WindowsПоддерживает C / C ++ / SystemCПлатформа графического моделирования и симуляции для выбора, анализа и проверки архитектуры сложных электронных систем на производительность, мощность и надежность.Проприетарный

C и C ++

  • Arm MAP, профилировщик производительности, поддерживающий платформы Linux.
  • AppDynamics, решение для управления производительностью приложений[модное слово ] для приложений C / C ++ через SDK.
  • AQtime Pro, профилировщик производительности и отладчик распределения памяти, который можно интегрировать в Microsoft Visual Studio и Embarcadero RAD Studio или запускать как отдельное приложение.
  • IBM Rational Purify был отладчиком памяти, позволяющим анализировать производительность.
  • Инструменты (в комплекте с Xcode) используется для профилирования распределения памяти исполняемого файла, использования времени, активности файловой системы, активности графического процессора и т. д.
  • Intel Parallel Studio содержит усилитель Intel VTune, который настраивает как последовательные, так и параллельные программы. Он также включает Intel Advisor и Intel Inspector. Intel Advisor оптимизирует векторизацию (использование инструкций SIMD) и прототипы реализаций потоковой передачи. Intel Inspector обнаруживает и отлаживает скачки, взаимоблокировки и ошибки памяти.
  • Parasoft Страхование ++ предоставляет графический инструмент, который отображает и анимирует выделение памяти в реальном времени, чтобы выявить выброс памяти, фрагментацию, чрезмерное использование, узкие места и утечки.
  • Timemory, модульный набор инструментов C ++ для создания инструментов анализа производительности, который предоставляет множество инструментов и библиотек командной строки в качестве побочного продукта своей гибкости и возможности повторного использования.
  • Профилировщик системы Visual Studio Team, коммерческий профилировщик от Microsoft.

Ява

  • inspectIT это открытый исходный код управление производительностью приложений (APM) решение[модное слово ] для мониторинга и анализа программных приложений, доступных под Лицензия Apache, Версия 2.0 (ALv2).
  • JConsole это профилировщик, который поставляется с Комплект для разработки Java
  • JProfiler
  • JRockit Mission Control, профилировщик с низкими накладными расходами.
  • Профилировщик Netbeans, профилировщик, интегрированный в NetBeans IDE (внутренне использует jvisualvm профилировщик)
  • Plumbr, Мониторинг производительности Java-приложений с автоматическим обнаружением первопричин. Связывает утечки памяти, неэффективность сборки мусора, медленные вызовы базы данных и внешних веб-служб, заблокированные потоки и другие проблемы производительности со строкой исходного кода, которая их вызывает.
  • OverOps, Непрерывная надежность для современной цепочки поставок программного обеспечения, автоматическое обнаружение и автоматизация первопричин всех ошибок.
  • VisualVM представляет собой визуальный инструмент, объединяющий несколько инструментов JDK командной строки и облегченные возможности профилирования. Он идет в комплекте с Комплект для разработки Java с версии 6 обновление 7.
  • FusionReactor, Мониторинг производительности Java-приложений - низкие накладные расходы, инструменты производственного уровня для производственной отладки, профилирования кода, анализа памяти и потоков

JavaScript

.СЕТЬ

  • Профилировщик CLR это бесплатный профилировщик памяти, предоставляемый Microsoft для CLR Приложения.
  • GlowCode - это профилировщик производительности и памяти для приложений .NET, использующих C # и другие языки .NET. Он выявляет трудоемкие функции и обнаруживает утечки памяти и ошибки в собственных, управляемых и смешанных приложениях Windows x64 и x86.
  • Visual Studio

PHP

  • BlackFire.io
  • Dbg
  • Xdebug это PHP расширение, которое обеспечивает возможности отладки и профилирования.

Смотрите также

использованная литература

  1. ^ "CodeXL". Архивировано из оригинал 19 сентября 2013 г.. Получено 26 сентября 2013.

внешняя ссылка