Список инструментов анализа производительности

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

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

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

  • время (Unix) — может использоваться для определения времени выполнения программы, отдельно подсчитывая пользовательское время против системного времени, а также время ЦП против времени часов. [1]
  • timem (Unix) — может использоваться для определения текущего времени, времени ЦП и загрузки ЦП аналогично time (Unix), но поддерживает многочисленные расширения.

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

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

Название/производительОСКомпилятор/языкЧто он делаетЛицензия
AppDynamics от CiscoLinux, Windows, iOS, Android, Azure, AWS, AIX.NET, Java, PHP, HTML5, ObjectiveC/iOS, Java/Android, C/C++, Apache, Nginx, Cassandra, Базы данныхСм. Управление производительностью приложений .Запатентованный
Менеджер приложений от ManageEngineЛинукс, ВиндовсJava, PHP, Ruby, .NET, .NET Core, Node.js.См. Управление производительностью приложений .Запатентованный
AQtime от SmartBear SoftwareОкнаПриложения .NET 1.0–4.0 (включая приложения ASP.NET), приложения Silverlight 4.0, приложения Windows 32- и 64-бит, включая функции C, C++, Delphi для Win32 и VBScript и JScriptПрофилировщик производительности и набор инструментов для отладки памяти/ресурсов.Запатентованный
Рука MAPЛинуксПриложения на языках C, C++, Fortran/Fortran90 и Python.Профилировщик производительности. Показывает ввод-вывод, связь, использование операций с плавающей точкой и затраты на доступ к памяти.

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

Запатентованный
CodeAnalyst от AMDЛинукс, ВиндовсC, C++, Objective C .NET, Java (работает на уровне исполняемых файлов)AMD uProf заменяет CodeAnalyst и CodeXL для профилирования ЦП и мощности на процессорах AMD.

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

Бесплатно/с открытым исходным кодом (GPL) или запатентовано
AMD CodeXL от AMDЛинукс, ВиндовсДля профилирования и отладки GPU: OpenCL.Набор инструментов для профилирования графического процессора, отладчик графического процессора и статический анализатор ядра.Бесплатно/с открытым исходным кодом (MIT)
AMD uProf от AMDЛинукс, ВиндовсC, C++, .NET, Java, ФортранПрофилировщик кода, выполняет профилирование на основе выборки на процессорах AMD.Запатентованный
DevPartner от Borland / Micro Focus.NET, JavaНабор тестов, который автоматически обнаруживает и диагностирует дефекты программного обеспечения и проблемы производительности.Запатентованный
DTrace от Sun MicrosystemsSolaris, Linux, BSD, macOSКомплексная динамическая трассировочная среда для устранения неполадок ядра и приложений в производственных системах в режиме реального времени.Бесплатный/с открытым исходным кодом ( CDDL )
dynamoRIO от RIOЛинукс, ВиндовсДинамическая двоичная инструментальная среда для разработки инструментов динамического анализа программ .Бесплатный/с открытым исходным кодом - BSD
Динатрейс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См. Управление производительностью приложений .Запатентованный
ЭкстраЛинукс, АндроидВ основном C/C++/Fortran, но может профилировать любое приложение, связывающееся с поддерживаемыми параллельными библиотеками (например, MPI4PY)Инструмент анализа производительности HPC с просмотрщиком и вспомогательными утилитами. В первую очередь разработан для параллельных приложений с поддержкой MPI, OpenMP, CUDA, OpenCL, pthreads и OmpSs. Дополнительные функции включают трассировку пользовательских функций и захват событий оборудования через PAPI.Бесплатно/с открытым исходным кодом - LGPL-2.1
FusionReactorLinux, Windows, macOS, AWS, Azure, Google CloudJava, ColdFusion, Apache, MongoDB Работает с любым языком, поддерживаемым JVMВыполняет управление производительностью приложений и анализ производительности и первопричин. Сочетает APM и низкоуровневый инструментарий разработчика; также включает отладчик и профилировщики Java, памяти, потоков и ЦП.Запатентованный
GlowCode от Electric Software, Inc.Окна64- и 32-разрядные приложения, C, C++, .NET и библиотеки DLL, созданные компилятором любого языка.Профилировщик производительности и памяти, который определяет ресурсоемкие функции, а также обнаруживает утечки памяти и ошибки.Запатентованный
гпрофЛинукс/ЮниксЛюбой язык, поддерживаемый gccНесколько инструментов с комбинированным сэмплированием и профилированием call-graph. Набор инструментов визуализации, VCG tools, использует Call Graph Drawing Interface (CGDI) для взаимодействия с gprof. Еще один инструмент визуализации, который взаимодействует с gprof, — это KProf.Свободный/с открытым исходным кодом — версия BSD является частью 4.2BSD , а версия GNU является частью GNU Binutils (от проекта GNU )
HWPMCFreeBSD 6.0+Среда мониторинга производительности оборудования для подсчета и выборки на уровне системы и процесса, поддерживающая несколько архитектур.БСД
Инстана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См. Управление производительностью приложений .Запатентованный
Инструменты с XcodemacOSПриложения C, C++, Objective-C/C++, Swift, Cocoa.Инструменты отображают временную шкалу, на которой отображаются все события, происходящие в приложении, такие как изменение активности ЦП, распределение памяти, а также сетевая и файловая активность, а также графики и статистика.

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

Бесплатно. Запатентовано. В комплекте с Xcode, который также бесплатный.
Советник IntelLinux и Windows. Просмотрщик только на macOS.C, C++, параллельный по данным C++ и FortranНабор инструментов проектирования и анализа — оптимизация векторизации (SIMD), прототипирование потоков, автоматизированный анализ линии крыши, моделирование разгрузки и анализ потоковых графиковБесплатное и проприетарное ПО. Доступно как часть Intel oneAPI Base Toolkit.
Набор инструментов трассировки Linux (LTT)ЛинуксТребуется пропатченное ядроСобирает данные о блокировке процессов, переключениях контекста и времени выполнения. Это помогает выявлять проблемы производительности в нескольких процессах или потоках. Заменено на LTTng .GPL
LTTng (Linux Trace Toolkit следующего поколения)ЛинуксСистемный программный пакет для коррелированной трассировки ядра, приложений и библиотек.GPL/LGPL/MIT
OПрофильЛинуксПрофилирует все, что работает в системе Linux, включая труднопрофилируемые программы, такие как обработчики прерываний и само ядро.Профилировщик выборки для Linux, который подсчитывает промахи кэша, зависания, выборки памяти и т. д.Открытый исходный код GPLv2
Анализатор производительности Oracle Solaris StudioЛинукс, СолярисС, С++, Фортран, Java; MPIПрофилировщик производительности и памяти.Бесплатное фирменное ПО
инструменты для перфорацииЯдро Linux 2.6.31+Профилировщик выборки с поддержкой аппаратных событий на нескольких архитектурах.GPL
Интерфейс программирования приложений производительности (PAPI)РазличныйБиблиотека для аппаратных счетчиков производительности на современных микропроцессорах.
Закрепить IntelLinux, Windows, MacOS, AndroidДинамическая двоичная система инструментов, позволяющая пользователям создавать собственные инструменты анализа программ.Запатентованная, но бесплатная для некоммерческого использования
Рациональный PurifyPlusAIX, Linux, Solaris, WindowsИнструмент профилирования производительности, отладчик памяти и инструмент покрытия кода .Запатентованный
СкаласкаЛинуксC/C++, ФортранПараллельный анализатор трасс.Бесплатно/с открытым исходным кодом (лицензия BSD)
Акула от ApplemacOS (поддержка прекращена с версии 10.7)Анализатор производительности.Бесплатное фирменное ПО
СверхсветовойWindows, Xbox One, PlayStationC++, Rust, .NETПрофилировщик производительности (дискретный или инструментальный) и анализатор, ориентированный на разработку игр.Запатентованный
Системный кранЛинуксПрограммируемый инструмент трассировки/исследования системы; может быть написан на основе скрипта для создания профилей ядра и/или его пользовательского пространства на основе счетчиков времени или производительности или функций.С открытым исходным кодом
ВальгриндLinux, macOS, Solaris, AndroidЛюбой, включая ассемблерСистема для отладки и профилирования; поддерживает инструменты для обнаружения ошибок управления памятью и потоковой передачи, а также для профилирования производительности (cachegrind и callgrind). KCacheGrind , valkyrie и alleyoop являются интерфейсами для valgrind.Бесплатно/с открытым исходным кодом (GPL)
Профилировщик VTune от корпорации Intel

(ранее VTune Amplifier)

Linux, Windows, просмотрщик только для macOSC, C++, C#, параллельный язык данных C++ (DPC++), Fortran, .NET, Java, Python, Go, ASM AssemblyКоллекция анализов профилирования, реализованных с помощью технологий выборки, инструментирования и трассировки процессора. Включает анализы Hotspot, Threading, HPC, I/O, FPGA, GPU, System, Throttling и Microarchitecture.Бесплатное и проприетарное ПО. Также доступно как часть базового набора инструментов Intel oneAPI.
Набор инструментов анализа производительности Windows от MicrosoftWindows, Linux, AndroidСистемный основной инструмент анализа производительности Windows, включая CPU Sampling, CPU Scheduling, Disk и все остальное. Может открывать трассировки Linux LTTng и Perf Cpu Sampling; а также трассировки Android Perfetto через плагиныБесплатное фирменное ПО с плагинами Linux/Android Open Source
Повернуть вправо УвеличитьLinux, macOS, Viewer только для WindowsПоддерживает большинство компилируемых языков на процессорах ARM и x86.Графический и командный статистический (основанный на событиях) профилировщик.
VisualSimLinux, macOS, Microsoft WindowsПоддерживает C/C++/SystemCГрафическая платформа моделирования и имитации для выбора, анализа и проверки архитектуры сложных электронных систем с точки зрения производительности, мощности и надежности.Запатентованный

С и С++

  • Arm MAP — профилировщик производительности, поддерживающий платформы Linux.
  • AppDynamics , решение для управления производительностью приложений [ модное словечко ] для приложений C/C++ через SDK.
  • AQtime Pro — профилировщик производительности и отладчик распределения памяти, который можно интегрировать в Microsoft Visual Studio и Embarcadero RAD Studio или запускать как отдельное приложение.
  • IBM Rational Purify — отладчик памяти, позволяющий анализировать производительность.
  • Инструменты (в комплекте с Xcode) используются для профилирования распределения памяти исполняемого файла, использования времени, активности файловой системы, активности графического процессора и т. д.
  • Intel Parallel Studio содержит Intel VTune Amplifier, который настраивает как последовательные, так и параллельные программы. Он также включает Intel Advisor и Intel Inspector. Intel Advisor оптимизирует векторизацию (использование инструкций SIMD) и прототипирует реализации потоков. Intel Inspector обнаруживает и отлаживает гонки, взаимоблокировки и ошибки памяти.
  • Parasoft Insure++ предоставляет графический инструмент, который отображает и анимирует распределение памяти в реальном времени, чтобы выявить переполнение памяти, фрагментацию, чрезмерное использование, узкие места и утечки.
  • 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 с автоматическим обнаружением первопричин. Связывает утечки памяти, неэффективность GC, медленные вызовы баз данных и внешних веб-сервисов, заблокированные потоки и другие проблемы производительности со строкой в ​​исходном коде, которая их вызывает.
  • OverOps , постоянная надежность для современной цепочки поставок программного обеспечения, автоматическое обнаружение и устранение первопричин всех ошибок.
  • VisualVM — визуальный инструмент, объединяющий несколько инструментов JDK командной строки и возможности легкого профилирования. Он входит в комплект Java Development Kit с версии 6, обновление 7.
  • FusionReactor , мониторинг производительности приложений Java — инструменты производственного уровня с низкими накладными расходами для отладки производства, профилирования кода, анализа памяти и потоков

JavaScript

.СЕТЬ

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

PHP

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

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

Ссылки

  1. ^ "CodeXL". Архивировано из оригинала 19 сентября 2013 года . Получено 26 сентября 2013 года .
  2. ^ "Производительность - Инструменты разработчика Firefox | MDN". MDN Web Docs . Получено 27 октября 2021 г.
Retrieved from "https://en.wikipedia.org/w/index.php?title=List_of_performance_analysis_tools&oldid=1268509289"