Это список инструментов анализа производительности для использования при разработке программного обеспечения .
Общего назначения, не зависящий от языка
Следующие инструменты работают на основе файлов журналов, которые могут быть созданы из различных систем.
- время (Unix) - может использоваться для определения времени выполнения программы, отдельно считая время пользователя и системное время, а время процессора и время часов. [1]
- timem (Unix) - может использоваться для определения времени настенных часов, времени ЦП и загрузки ЦП аналогично времени (Unix), но поддерживает множество расширений.
- Поддерживает создание отчетов о максимальном размере резидентного набора , основных и второстепенных ошибках страницы, приоритетах и добровольных переключениях контекста через getrusage .
- Поддержка выборки Procfs по поддержке систем показателей отчетов , таких как страничной житель заданного размера , виртуальный размер памяти, чтения байтов и записи байтов и т.д.
- Поддерживает сбор аппаратных счетчиков при построении с поддержкой PAPI .
Несколько языков
Следующие инструменты работают с несколькими языками или двоичными файлами.
Имя / Производитель | Операционные системы | Компилятор / язык | Что оно делает | Лицензия |
---|---|---|---|---|
Arm MAP | Linux | Приложения C, C ++, Fortran / Fortran90 и Python. | Профилировщик производительности. Показывает затраты на ввод-вывод, связь, использование операций с плавающей запятой и доступ к памяти. Поддерживает многопоточные и многопроцессорные приложения, например, с параллелизмом MPI или OpenMP, и масштабируется до очень большого количества узлов. | Проприетарный |
AppDynamics от Cisco | Linux, Windows, iOS, Android, Azure, AWS, AIX | .NET, Java, PHP, HTML5, ObjectiveC / iOS, Java / Android, C / C ++, Apache, Nginx, Cassandra, базы данных | См. Управление производительностью приложений . | Проприетарный |
AQtime от SmartBear Software | Окна | Приложения .NET от 1.0 до 4.0 (включая приложения ASP.NET), приложения Silverlight 4.0, 32- и 64-разрядные приложения Windows, включая C, C ++, Delphi для Win32 и функции VBScript и JScript | Профилировщик производительности и набор инструментов для отладки памяти / ресурсов. | Проприетарный |
CodeAnalyst от AMD | Linux, Windows | C, C ++, Objective C .NET, Java (работает на уровне исполняемых файлов) | AMD uProf заменяет CodeAnalyst и CodeXL для профилирования ЦП и мощности на процессорах AMD.
| Свободный / открытый исходный код (GPL) или проприетарный |
AMD CodeXL от AMD | Linux, Windows | Для профилирования и отладки графического процессора: OpenCL. | Набор инструментов для профилирования графического процессора, отладчик графического процессора и статический анализатор ядра. | Свободный / открытый исходный код (MIT) |
AMD uProf от AMD | Linux, Windows | C, C ++, .NET, Java, Фортран | Профилировщик кода, выполняет профилирование на основе выборки на процессорах AMD. | Проприетарный |
DevPartner от Borland / Micro Focus | .NET, Java | Набор тестов, который автоматически обнаруживает и диагностирует дефекты программного обеспечения и проблемы с производительностью. | Проприетарный | |
DTrace от Sun Microsystems | Солярис, Linux, BSD, macOS | Комплексная среда динамической трассировки для устранения проблем ядра и приложений в производственных системах в режиме реального времени. | Свободный / открытый исходный код ( CDDL ) | |
динамоРИО от РИО | Linux, Windows | Фреймворк динамического двоичного инструментария для разработки инструментов динамического анализа программ. | Бесплатно / с открытым исходным кодом - BSD | |
Dynatrace | Linux, 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 | См. Управление производительностью приложений . | Проприетарный |
Extrae | Linux, Android | В первую очередь C / C ++ / Fortran, но может профилировать любое приложение, связывающееся с поддерживаемыми параллельными библиотеками (например, MPI4PY) | Инструмент анализа производительности HPC со средством просмотра и вспомогательными утилитами. В первую очередь разработан для параллельных приложений с поддержкой MPI, OpenMP, CUDA, OpenCL, pthreads и OmpS. Дополнительные функции включают отслеживание пользовательских функций и захват аппаратных событий через PAPI. | Бесплатно / с открытым исходным кодом - LGPL-2.1 |
FusionReactor | Linux, Windows, macOS, AWS, Azure, Google Cloud | Java, ColdFusion, Apache, MongoDB Работает с любым языком, поддерживаемым JVM | Выполняет управление производительностью приложений и анализ производительности и первопричин. Сочетает в себе APM и инструменты для разработки низкого уровня; также включает отладчик и профилировщики Java, памяти, потоков и ЦП. | Проприетарный |
GlowCode | Окна | 64-битные и 32-битные приложения, C, C ++, .NET и библиотеки DLL, созданные компилятором любого языка. | Профилировщик производительности и памяти, который определяет трудоемкие функции и обнаруживает утечки и ошибки памяти. | Проприетарный |
гпроф | Linux / Unix | Любой язык, поддерживаемый gcc | Несколько инструментов с комбинированной выборкой и профилированием графа вызовов. Набор инструментов визуализации, инструменты VCG , использует интерфейс рисования графа вызовов (CGDI) для взаимодействия с gprof. Еще один инструмент визуализации, который взаимодействует с gprof, - это KProf . | Свободный / открытый исходный код - версия BSD является частью 4.2BSD, а версия GNU является частью GNU Binutils (от GNU Project ) |
Instana | Linux, Windows, iOS, Android, Azure, AWS, AIX, Solaris, HP / UX, zOS, zLinux | .NET, .Net core, Java, PHP, Ruby, Python, Crystal, Scala, Kotlin, Clojure, Haskell, Node.js, веб-браузер, Apache, Nginx, Cassandra, Hadoop, MongoDB, Elasticsearch, Kafka | См. Управление производительностью приложений . | Проприетарный |
Инструменты с Xcode | macOS | Приложения C, C ++, Objective-C / C ++, Swift, Какао. | Инструменты показывают временную шкалу, отображающую любое событие, происходящее в приложении, например изменение активности ЦП, выделение памяти, а также активность сети и файлов, вместе с графиками и статистикой. Группа событий отслеживается путем выбора конкретных инструментов из: Активность файла, Распределение памяти, Профилировщик времени, Активность графического процессора и т. Д. Для общесистемного воздействия исполняемого файла: Системная трассировка, Использование системы, Использование сети, Журнал энергопотребления и т. Д. Полезны. | Бесплатно. Собственный. В комплекте с Xcode, который также бесплатен. |
Советник Intel | Linux и Windows. Просмотрщик только на macOS. | C, C ++, Параллельные данные C ++ и Fortran | Набор инструментов проектирования и анализа - оптимизация векторизации (SIMD), создание прототипов потоков, автоматический анализ кровли, моделирование разгрузки и анализ потоковых графов. | Бесплатное и проприетарное ПО. Доступно как часть Intel oneAPI Base Toolkit . |
Набор средств трассировки Linux (LTT) | Linux | Требуется исправленное ядро | Собирает данные о блокировке процессов, переключениях контекста и времени выполнения. Это помогает выявить проблемы с производительностью в нескольких процессах или потоках. Заменено LTTng . | GPL |
LTTng (Linux Trace Toolkit следующего поколения) | Linux | Системный программный комплекс для коррелированного отслеживания ядра, приложений и библиотек. | GPL / LGPL / MIT | |
OProfile | Linux | Профилирует все, что работает в системе Linux, включая трудно профилируемые программы, такие как обработчики прерываний и само ядро. | Профилировщик выборки для Linux, который подсчитывает промахи кеша, задержки, выборки памяти и т. Д. | Открытый исходный код GPLv2 |
Анализатор производительности Oracle Solaris Studio | Linux, Solaris | C, C ++, Fortran, Java; MPI | Профайлер производительности и памяти. | Проприетарное бесплатное ПО |
инструменты перфорации | Ядро Linux 2.6.31+ | Профилировщик выборки с поддержкой аппаратных событий на нескольких архитектурах. | GPL | |
Интерфейс прикладного программирования производительности (PAPI) | Разные | Библиотека аппаратных счетчиков производительности на современных микропроцессорах. | ||
LIKWID | Linux | C / C ++, Fortran, Python, Java и Lua | Набор инструментов командной строки и библиотеки для программистов, ориентированных на производительность (мониторинг производительности оборудования, контроль соответствия и т. Д.). | GPLv3 |
Пин от Intel | Linux, Windows, macOS, Android | Система динамических бинарных инструментов, которая позволяет пользователям создавать собственные инструменты анализа программ. | Собственная, но бесплатная для некоммерческого использования | |
Рациональный PurifyPlus | AIX, Linux, Solaris, Windows | Инструмент профилирования производительности, отладчик памяти и инструмент покрытия кода . | Проприетарный | |
Скаласка | Linux | C / C ++, Фортран | Анализатор параллельных трасс. | Бесплатно / с открытым исходным кодом (лицензия BSD) |
Акула от Apple | macOS (выпуск прекращен с версии 10.7) | Анализатор производительности. | Проприетарное бесплатное ПО | |
Сверхсветовая производительность | Windows, Xbox, PlayStation | C, C ++, Rust | Профилировщик гибридного отбора проб и инструментов, созданный с учетом удобства использования и масштабируемости. | Проприетарный |
Systemtap | Linux | Программируемый инструмент отслеживания / зондирования системы; может быть написан в виде сценария для генерации профилей ядра и / или его пользовательского пространства на основе времени, счетчика производительности или функций. | Открытый источник | |
память | Linux, macOS, Windows | C, C ++, Python, Фортран | Модульный набор инструментов C ++ для создания масштабируемых настраиваемых инструментов и инструментов выборки для анализа производительности. Разработан для минимизации накладных расходов за счет адаптации к интерфейсу каждого компонента анализа производительности во время компиляции и упрощения добавления поддержки вызовов и хранения данных в многопоточных и многопроцессорных средах выполнения. Включает в себя множество предварительно созданных компонентов для синхронизации, использования ресурсов, аппаратных счетчиков, модели Roofline и инструментальных API для VTune , Intel Advisor , LIKWID и Arm MAP , среди прочего. Компоненты могут быть произвольно объединены в единый дескриптор для коллективных вызовов и широковещательной рассылки входных аргументов. Привязки Python предоставляются для каждого компонента в виде отдельного класса для реализации инструментов профилирования Python с низкими накладными расходами. Профилирование с помощью динамических инструментов доступно в Linux. | Бесплатная / с открытым исходным кодом (MIT) |
Валгринд | Linux, macOS, Solaris, Android | Любой, в том числе ассемблерный | Система отладки и профилирования; поддерживает инструменты либо для обнаружения ошибок управления памятью и потоковой передачи, либо для профилирования производительности (cachegrind и callgrind). KCacheGrind , valkyrie и alleyoop - это интерфейсы для valgrind. | Свободный / открытый исходный код (GPL) |
VTune Profiler от корпорации Intel (бывший усилитель VTune) | Linux, Windows, просмотрщик только для macOS | C, C ++, C #, Data Parallel C ++ (DPC ++), Fortran, .NET, Java, Python, Go, сборка ASM | Коллекция профилирующих анализов, реализованных с помощью технологий выборки, контрольно-измерительной аппаратуры и процессорной трассировки. Включает анализ горячих точек, потоков, высокопроизводительных вычислений, ввода-вывода, FPGA, графического процессора, системы, регулирования и микроархитектуры. | Бесплатное и проприетарное ПО. Также доступно как часть базового инструментария Intel oneAPI . |
Набор средств анализа производительности Windows от Microsoft | Окна | Проприетарное бесплатное ПО | ||
Повернуть Правый Масштаб | Linux, macOS, просмотрщик только для Windows | Поддерживает большинство компилируемых языков на процессорах ARM и x86. | Графический статистический профилировщик (на основе событий) и командная строка. | |
VisualSim | Linux, 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 Insure ++ предоставляет графический инструмент, который отображает и анимирует выделение памяти в реальном времени, чтобы выявить выброс памяти, фрагментацию, чрезмерное использование, узкие места и утечки.
- Timemory , модульный набор инструментов C ++ для создания инструментов анализа производительности, который предоставляет множество инструментов и библиотек командной строки в качестве побочного продукта своей гибкости и возможности повторного использования.
- Visual Studio Team System Profiler , коммерческий профилировщик от Microsoft.
Ява
- inspectIT - это решение для управления производительностью приложений (APM) с открытым исходным кодом [ модное слово ] для мониторинга и анализа программных приложений, доступное по лицензии Apache , версия 2.0 (ALv2).
- JConsole - это профилировщик, который поставляется с Java Development Kit.
- JProfiler
- JRockit Mission Control , профилировщик с низкими накладными расходами.
- Netbeans Profiler , профилировщик, интегрированный в IDE NetBeans (внутренне использует профилировщик jvisualvm )
- Plumbr , мониторинг производительности Java-приложений с автоматическим обнаружением первопричин. Связывает утечки памяти, неэффективность сборщика мусора, медленные вызовы базы данных и внешних веб-служб, заблокированные потоки и другие проблемы производительности со строкой исходного кода, которая их вызывает.
- OverOps , постоянная надежность для современной цепочки поставок программного обеспечения, автоматически обнаруживает и обеспечивает автоматизацию первопричин всех ошибок.
- VisualVM - это визуальный инструмент, объединяющий несколько инструментов JDK командной строки и облегченные возможности профилирования. Он входит в комплект Java Development Kit, начиная с версии 6, обновление 7.
- FusionReactor , мониторинг производительности приложений Java - низкие накладные расходы, инструменты производственного уровня для производственной отладки, профилирования кода, анализа памяти и потоков
JavaScript
- Firebug - это подключаемый модуль Firefox для веб-разработки, также имеющий профилировщик для JavaScript .
- Microsoft Visual Studio AJAX Profiling Extensions - это бесплатный инструмент профилирования для JavaScript от Microsoft Research .
.СЕТЬ
- CLR Profiler - это бесплатный профилировщик памяти, предоставляемый Microsoft для приложений CLR .
- GlowCode - это профилировщик производительности и памяти для приложений .NET, использующих C # и другие языки .NET. Он определяет трудоемкие функции и обнаруживает утечки памяти и ошибки в собственных, управляемых и смешанных приложениях Windows x64 и x86.
- Visual Studio
- DotNetBlackbox - это посмертный отладчик времени выполнения для C # и VB.NET. Он регистрирует каждый шаг каждой команды, если это необходимо в среде клиента. Также возможно регистрировать значения переменных.
PHP
- BlackFire.io
- Dbg
- Xdebug - это расширение PHP, которое обеспечивает возможности отладки и профилирования.
Смотрите также
- Анализ производительности
- Отладчик памяти (включает список профилировщиков памяти)
Рекомендации
- ^ "CodeXL" . Архивировано из оригинального 19 сентября 2013 года . Проверено 26 сентября 2013 года . CS1 maint: обескураженный параметр ( ссылка )
Внешние ссылки
- Инструменты анализа производительности , статья из Ливерморской национальной лаборатории Лоуренса