Список инструментов анализа производительности - List of performance analysis tools
эта статья нужны дополнительные цитаты для проверка.Ноябрь 2011 г.) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
Это список анализ производительности инструменты для использования в разработка программного обеспечения.
Общего назначения, не зависит от языка
Следующие инструменты работают на основе файлов журналов, которые могут быть созданы из различных систем.
- время (Unix) - может использоваться для определения времени выполнения программы, отдельно подсчитывая время пользователя и системное время, а время процессора и время часов.[1]
- timem (Unix) - может использоваться для определения времени настенных часов, времени процессора и загрузки процессора аналогично время (Unix) но поддерживает множество расширений.
- Поддерживает отчетный пик размер резидентского набора, основные и второстепенные ошибки страницы, приоритетное и добровольное переключение контекста через Getrusage.
- Поддерживает выборку procfs о вспомогательных системах для отчетности по таким показателям, как размер резидентского набора, размер виртуальной памяти, байты чтения и записи и т. д.
- Поддерживает сбор аппаратных счетчиков при построении с ПАПИ поддерживать.
Несколько языков
Следующие инструменты работают с несколькими языками или двоичными файлами.
Имя / Производитель | Операционные системы | Компилятор / язык | Что оно делает | Лицензия |
---|---|---|---|---|
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 | Windows | Приложения .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 / Микро Фокус | .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 | Windows | 64-битные и 32-битные приложения, C, C ++, .NET и библиотеки DLL, созданные компилятором любого языка. | Профилировщик производительности и памяти, который определяет трудоемкие функции и обнаруживает утечки и ошибки памяти. | Проприетарный |
гпроф | Linux / Unix | Любой язык, поддерживаемый gcc | Несколько инструментов с комбинированной выборкой и профилированием графа вызовов. Набор инструментов визуализации, Инструменты VCG, использует интерфейс рисования графа вызовов (CGDI) для взаимодействия с gprof. Другой инструмент визуализации, который взаимодействует с gprof, - это КПроф. | Свободный / открытый исходный код - версия BSD является частью 4.2BSD и версия GNU является частью GNU Binutils (от Проект GNU ) |
Instana | Linux, 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 | Увидеть Управление производительностью приложений. | Проприетарный |
Инструменты с Xcode | macOS | Приложения C, C ++, Objective-C / C ++, Swift, Какао. | Инструменты отображают временную шкалу, отображающую любое событие, происходящее в приложении, например изменение активности ЦП, выделение памяти, а также активность сети и файлов, вместе с графиками и статистикой. Группа событий отслеживается путем выбора конкретных инструментов из: Активность файла, Распределение памяти, Профилировщик времени, Активность графического процессора и т. Д. Для общесистемного воздействия исполняемого файла: Системная трассировка, Использование системы, Использование сети, Журнал энергопотребления и т. Д. Полезны. | Свободный. Собственный. В комплекте с Xcode, который также является бесплатным. |
Советник Intel | Linux и Windows. Просмотрщик только на macOS. | C, C ++ и Фортран | Оптимизация векторизации (SIMD). Найдите горячие петли, определите, что блокирует векторизацию, проверьте наличие зависимостей, переносимых петлями, проанализируйте шаблоны доступа к памяти и оптимизируйте шаг и объем памяти. Включает анализ линии крыши с учетом кеширования. Также включает в себя Flow Graph Analyzer для создания и анализа графиков потоков данных и вычислений зависимостей. | Бесплатное и проприетарное ПО. Входит в состав Intel Parallel Studio. |
Набор инструментов трассировки 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 | Профайлер производительности и памяти. | Проприетарное бесплатное ПО |
инструменты perf | Ядро 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 ++ для создания масштабируемых настраиваемых инструментов и инструментов выборки для анализа производительности. Разработан для минимизации накладных расходов за счет адаптации к интерфейсу каждого компонента анализа производительности во время компиляции и упрощения добавления поддержки вызовов и хранения данных в многопоточных и многопроцессорных средах выполнения. Включает множество встроенных компонентов для синхронизации, использования ресурсов, аппаратных счетчиков, Модель крыши, и инструментальные 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, просмотрщик только для macOS | C, C ++, C #, Fortran, .NET, Java, Python, Go, сборка ASM | Набор анализов профилирования, реализованных с использованием технологий выборки, контрольно-измерительной аппаратуры и процессора. Включает анализ горячих точек, потоков, высокопроизводительных вычислений, ввода-вывода, FPGA, графического процессора, системы, регулирования и микроархитектуры. | Бесплатное и проприетарное ПО. Также доступен в составе Intel Parallel Studio. |
Набор средств анализа производительности Windows от Microsoft | Windows | Проприетарное бесплатное ПО | ||
Повернуть вправо | 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 Страхование ++ предоставляет графический инструмент, который отображает и анимирует выделение памяти в реальном времени, чтобы выявить выброс памяти, фрагментацию, чрезмерное использование, узкие места и утечки.
- 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
- Firebug это плагин Firefox для веб-разработки, также имеет профилировщик для JavaScript.
- Расширения профилирования Microsoft Visual Studio AJAX это бесплатный инструмент для профилирования JavaScript от Microsoft Research.
.СЕТЬ
- Профилировщик CLR это бесплатный профилировщик памяти, предоставляемый Microsoft для CLR Приложения.
- GlowCode - это профилировщик производительности и памяти для приложений .NET, использующих C # и другие языки .NET. Он выявляет трудоемкие функции и обнаруживает утечки памяти и ошибки в собственных, управляемых и смешанных приложениях Windows x64 и x86.
- Visual Studio
PHP
- BlackFire.io
- Dbg
- Xdebug это PHP расширение, которое обеспечивает возможности отладки и профилирования.
Смотрите также
- Анализ производительности
- Отладчик памяти (включает список профилировщиков памяти)