Список инструментов анализа производительности
Эта статья нуждается в дополнительных цитатах для проверки . ( ноябрь 2011 г. ) |
Это список анализа производительности инструментов , которые можно использовать при разработке программного обеспечения .
Общего назначения, независимо от языка [ править ]
Следующие инструменты работают на основе файлов журналов, которые могут быть созданы в различных системах.
- время (Unix) — может использоваться для определения времени выполнения программы, отдельно считая время пользователя и системное время, а также время процессора и время часов. [1]
- timem (Unix) — может использоваться для определения времени настенных часов, времени ЦП и загрузки ЦП аналогично времени (Unix) , но поддерживает множество расширений.
- Поддерживает отчеты о пиковом размере резидентного набора , основных и второстепенных ошибках страниц, приоритетах и добровольных переключениях контекста через getrusage.
- выборки Поддерживает процедуры страниц в поддерживающих системах для составления отчетов о таких показателях, как размер резидентного набора , размер виртуальной памяти, байты чтения и записи и т. д.
- Поддерживает сбор аппаратных счетчиков при построении с поддержкой PAPI .
Несколько языков [ править ]
Следующие инструменты работают с несколькими языками или двоичными файлами.
Название/производитель | ТЫ | Компилятор/язык | Что он делает | Лицензия |
---|---|---|---|---|
AppDynamics от Cisco | Linux, 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 | Окна | Приложения .NET 1.0–4.0 (включая приложения ASP.NET), приложения Silverlight 4.0, 32- и 64-разрядные приложения Windows, включая C, C++, Delphi для Win32, а также функции VBScript и JScript. | Профилировщик производительности и набор инструментов для отладки памяти/ресурсов. | Собственный |
Карта вооружения | Линукс | Приложения 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 | Линукс, Винда | Для профилирования и отладки графического процессора: OpenCL. | Набор инструментов для профилирования графического процессора, отладчика графического процессора и статического анализатора ядра. | Бесплатный/открытый исходный код (MIT) |
AMD uProf от AMD | Линукс, Винда | C, C++, .NET, Java, Фортран | Профилировщик кода выполняет профилирование на основе выборки на процессорах AMD. | Собственный |
DevPartner от Borland / Micro Focus | .NET, Ява | Набор тестов, который автоматически обнаруживает и диагностирует дефекты программного обеспечения и проблемы с производительностью. | Собственный | |
DTrace от Sun Microsystems | Солярис, Linux, BSD, macOS | Комплексная платформа динамической трассировки для устранения проблем ядра и приложений в производственных системах в режиме реального времени. | Бесплатный/открытый исходный код ( CDDL ) | |
динамоРИО от 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 и OmpS. Дополнительные функции включают отслеживание пользовательских функций и захват аппаратных событий через PAPI. | Бесплатный/с открытым исходным кодом – LGPL-2.1 |
Термоядерный реактор | Linux, Windows, macOS, AWS, Azure, Google Cloud | Java, ColdFusion, Apache, MongoDB Работает с любым языком, поддерживаемым JVM. | Выполняет управление производительностью приложений , а также анализ производительности и основных причин. Сочетает в себе инструменты APM и стиля разработчика низкого уровня; также включает отладчик и профилировщики Java, памяти, потоков и ЦП. | Собственный |
GlowCode | Окна | 64-битные и 32-битные приложения, C, C++, .NET и библиотеки DLL, созданные любым компилятором языка. | Профилировщик производительности и памяти, который определяет трудоемкие функции и обнаруживает утечки памяти и ошибки. | Собственный |
гпроф | Линукс/Юникс | Любой язык, поддерживаемый gcc | Несколько инструментов с комбинированной выборкой и профилированием графа вызовов. Набор инструментов визуализации, VCGtools , использует интерфейс рисования графа вызовов (CGDI) для взаимодействия с gprof. Еще один инструмент визуализации, взаимодействующий с gprof, — это KProf . | Бесплатный/открытый исходный код — версия BSD является частью 4.2BSD , а версия GNU — частью GNU Binutils (от GNU Project ). |
ХВПМК | БесплатнаяBSD 6.0+ | Платформа для мониторинга производительности оборудования на уровне системы и процесса, поддерживающая несколько архитектур. | БСД | |
Инстана | 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, Cocoa. | Инструменты отображают временную шкалу, отображающую любые события, происходящие в приложении, такие как изменение активности ЦП, распределение памяти, а также сетевую и файловую активность, а также графики и статистику. Группа событий отслеживается путем выбора определенных инструментов: активность файлов, распределение памяти, профилировщик времени, активность графического процессора и т. д. Для общесистемного воздействия исполняемого файла полезны: трассировка системы, использование системы, использование сети, журнал энергопотребления и т. д. | Бесплатно. Собственный. В комплекте с Xcode, который также бесплатен. |
Советник Intel | Линукс и Винда. Просмотр только на macOS. | C, C++, параллельный анализ данных C++ и Fortran | Набор инструментов проектирования и анализа: оптимизация векторизации (SIMD), прототипирование резьбы, автоматический анализ линии крыши, моделирование разгрузки и анализ графа потока. | Бесплатное и проприетарное программное обеспечение. Доступен как часть набора инструментов Intel oneAPI Base Toolkit . |
Набор инструментов трассировки Linux (LTT) | Линукс | Требуется исправленное ядро | Собирает данные о блокировке процессов, переключении контекста и времени выполнения. Это помогает выявить проблемы с производительностью нескольких процессов или потоков. Заменен LTTng . | лицензия GPL |
LTTng (набор инструментов трассировки Linux следующего поколения) | Линукс | Пакет системного программного обеспечения для коррелированной трассировки ядра, приложений и библиотек. | Лицензия GPL/LGPL/MIT | |
OПрофиль | Линукс | Профилирует все, что работает в системе Linux, включая программы, которые сложно профилировать, такие как обработчики прерываний и само ядро. | Профилировщик выборки для Linux, который подсчитывает промахи в кэше, зависания, выборку памяти и т. д. | GPLv2 с открытым исходным кодом |
Oracle Solaris Studio Анализатор производительности | Линукс, Солярис | С, С++, Фортран, Ява; ИМБ | Профилировщик производительности и памяти. | Проприетарное бесплатное ПО |
Перфекционистские инструменты | Ядро Linux 2.6.31+ | Выборочный профайлер с поддержкой аппаратных событий на нескольких архитектурах. | лицензия GPL | |
Интерфейс прикладного программирования производительности (PAPI) | Различный | Библиотека аппаратных счетчиков производительности современных микропроцессоров. | ||
Пин от пользователя Intel | Linux, Windows, MacOS, Android | Динамическая двоичная система инструментов, которая позволяет пользователям создавать собственные инструменты анализа программ. | Собственный, но бесплатный для некоммерческого использования. | |
Рациональный ПьюрифайПлюс | AIX, Linux, Солярис, Windows | Инструмент профилирования производительности, отладчик памяти и покрытия кода инструмент . | Собственный | |
Скаласка | Линукс | Си/С++, Фортран | Параллельный анализатор трассировки. | Бесплатный/открытый исходный код (лицензия BSD) |
Акула от Apple | macOS (прекращено в версии 10.7) | Анализатор производительности. | Проприетарное бесплатное ПО | |
сверхсветовой | Windows, Xbox One, PlayStation | С++, Руст, .NET | Профилировщик производительности (выборочный или инструментированный) и анализатор, ориентированный на разработку игр. | Собственный |
Систематап | Линукс | Программируемый инструмент отслеживания/зондирования системы; может быть написан сценарий для создания профилей ядра и/или его пользовательского пространства на основе счетчиков времени, производительности или функций. | Открытый исходный код | |
Избирательные ворота | Linux, macOS, Солярис, Андроид | Любой, включая ассемблер | Система отладки и профилирования; поддерживает инструменты для обнаружения ошибок управления памятью и многопоточности, а также производительности профиля (cachegrind и callgrind). KCacheGrind , valkyrie и alleyoop — это интерфейсы для valgrind. | Бесплатный/открытый исходный код (GPL) |
VTune Profiler by Intel Corporation (formerly VTune Amplifier) | Linux, Windows, программа просмотра только для macOS | C, C++, C#, параллельная обработка данных C++ (DPC++), Fortran, .NET, Java, Python, Go, сборка ASM | Коллекция профилирующих анализов, реализованных с помощью технологий выборки, инструментирования и трассировки процессора. Включает анализ точек доступа, многопоточности, HPC, ввода-вывода, FPGA, графического процессора, системы, регулирования и микроархитектуры. | Бесплатное и проприетарное программное обеспечение. Также доступен как часть базового инструментария Intel oneAPI. |
Набор инструментов для анализа производительности Windows от Microsoft | Винда, Линукс, Андроид | Общесистемный основной инструмент анализа производительности Windows, включая выборку ЦП, планирование ЦП, диск и все остальное. Может открывать трассировки Linux LTTng и Perf Cpu Sampling; а также трассировка Android Perfetto через плагины | Проприетарное бесплатное ПО с плагинами с открытым исходным кодом для Linux/Android. | |
Поворот вправо Масштаб | Linux, macOS, Viewer только для Windows | Поддерживает большинство компилируемых языков на процессорах ARM и x86. | Статистический (основанный на событиях) профилировщик с графическим интерфейсом и командной строкой. | |
ВизуалСим | 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 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.
- JПрофили
- JRockit Mission Control — профайлер с низкими накладными расходами.
- Netbeans Profiler — профилировщик, интегрированный в среду IDE NetBeans (внутренне используется jvisualvm ) профилировщик
- Plumbr , мониторинг производительности Java-приложений с автоматическим обнаружением первопричин. Связывает утечки памяти, неэффективность сборщика мусора, медленные вызовы базы данных и внешних веб-служб, заблокированные потоки и другие проблемы производительности со строкой исходного кода, которая их вызывает.
- OverOps . Непрерывная надежность современной цепочки поставок программного обеспечения, автоматическое обнаружение и автоматизация первопричин всех ошибок.
- VisualVM — это визуальный инструмент, объединяющий несколько инструментов JDK командной строки и упрощенные возможности профилирования. Он входит в состав Java Development Kit , начиная с версии 6, обновления 7.
- FusionReactor , мониторинг производительности приложений Java — низкие накладные расходы, инструменты производственного уровня для отладки производства, профилирования кода, анализа памяти и потоков.
JavaScript [ править ]
- Инструменты разработчика веб-браузера Firefox . содержат инструмент «Производительность», который дает представление о производительности JavaScript на веб-сайте [2]
- Расширения профилирования Microsoft Visual Studio AJAX — это бесплатный инструмент профилирования JavaScript от Microsoft Research .
.NET [ править ]
- CLR Profiler — это бесплатный профилировщик памяти, предоставляемый Microsoft для CLR . приложений
- GlowCode — это профилировщик производительности и памяти для приложений .NET, использующих C# и другие языки .NET. Он определяет трудоемкие функции и обнаруживает утечки памяти и ошибки в собственных, управляемых и смешанных приложениях Windows x64 и x86.
- Визуальная Студия
PHP [ править ]
- BlackFire.io
- ДБГ
- Xdebug — это расширение PHP , предоставляющее возможности отладки и профилирования.
См. также [ править ]
- Анализ производительности
- Отладчик памяти (включает список профилировщиков памяти)
Ссылки [ править ]
- ^ «КодXL» . Архивировано из оригинала 19 сентября 2013 года . Проверено 26 сентября 2013 г.
- ^ «Производительность — Инструменты разработчика Firefox | MDN» . Веб-документы MDN . Проверено 27 октября 2021 г.