Lista över prestationsanalysverktyg

Detta är en lista över prestandaanalysverktyg . för användning i mjukvaruutveckling

Allmänt syfte, språkoberoende

Följande verktyg fungerar baserat på loggfiler som kan genereras från olika system.

  • tid (Unix) - kan användas för att bestämma körtiden för ett program, separat räknande av användartid vs. systemtid, och CPU-tid vs. klocktid.
  • timem (Unix) - kan användas för att bestämma väggklockans tid, CPU-tid och CPU-användning liknande tid (Unix) men stöder många tillägg.
    • Stöder rapportering av peak resident set size , större och mindre sidfel, prioritet och frivilliga kontextväxlar via getrusage.
    • Stöder provtagningsprocfs stödjande system för att rapportera mätvärden som sidbaserad inbyggd uppsättningsstorlek , virtuellt minnesstorlek, läs-byte och skrivbyte, etc.
    • Stöder insamling av hårdvaruräknare när de byggs med PAPI- stöd.

Flera språk

Följande verktyg fungerar för flera språk eller binärer.

Namn/tillverkare OS Kompilator/språk Vad den gör Licens
AppDynamics från Cisco Linux, Windows, iOS, Android, Azure, AWS, AIX .NET, Java, PHP, HTML5, ObjectiveC/iOS, Java/Android, C/C++, Apache, Nginx, Cassandra, Databaser Se Application Performance Management . Proprietär
Application Manager av ManageEngine Linux, Windows Java, PHP, Ruby, .NET, .NET Core, Node.js. Se Application Performance Management . Proprietär
AQtime från SmartBear Software Windows .NET 1.0 till 4.0 applikationer (inklusive ASP.NET applikationer), Silverlight 4.0 applikationer, Windows 32- och 64-bitars applikationer inklusive C, C++, Delphi för Win32 och VBScript och JScript funktioner Prestandaprofilerare och verktygsuppsättning för felsökning av minne/resurs. Proprietär
Arm KARTA Linux C, C++, Fortran/Fortran90 och Python-applikationer. Prestandaprofilerare. Visar I/O, kommunikation, flyttalsdriftanvändning och minnesåtkomstkostnader.

Stöder flertrådiga och multiprocessapplikationer - som de med MPI- eller OpenMP- parallellism och skalar till mycket höga nodantal.

Proprietär
CodeAnalyst av AMD Linux, Windows C, C++,Objective C .NET, Java (fungerar på körbar nivå) AMD uProf ersätter CodeAnalyst och CodeXL för CPU- och Power-profilering på AMD-processorer.

GUI-baserad kodprofilerare; gör endast grundläggande timerbaserad profilering på Intel-processorer. Baserat på OProfile .

Gratis/öppen källkod (GPL) eller proprietär
AMD CodeXL från AMD Linux, Windows För GPU-profilering och felsökning: OpenCL. En verktygssvit för GPU-profilering, GPU-debugger och en statisk kärnanalysator. Gratis/öppen källkod (MIT)
AMD uProf från AMD Linux, Windows C, C++, .NET, Java, Fortran Kodprofilerare, gör samplingsbaserad profilering på AMD-processorer. Proprietär
DevPartner av Borland / Micro Focus .NET, Java Testsvit som automatiskt upptäcker och diagnostiserar programvarufel och prestandaproblem. Proprietär
DTrace av Sun Microsystems Solaris, Linux, BSD, macOS Omfattande dynamiskt spårningsramverk för felsökning av kärn- och applikationsproblem på produktionssystem i realtid. Gratis/öppen källkod ( CDDL )
dynamoRIO av RIO Linux, Windows Dynamisk binär instrumenteringsram för utveckling av dynamiska programanalysverktyg . Gratis/öppen källkod - BSD
Dynatrace Linux, Windows, iOS, Android, Azure, AWS, AIX, Solaris, HP/UX, zOS, zLinux .NET, Java, PHP, HTML5, Ajax (för webbplatser), Objective-C/iOS, Java/Android, C/C++, CICS, Apache, Nginx, Cassandra, Hadoop, MongoDB, HBase Se Application Performance Management . Proprietär
Extrae Linux, Android Primärt C/C++/Fortran, men kan profilera vilken applikation som helst som länkar mot parallella bibliotek som stöds (t.ex. MPI4PY) HPC prestandaanalysverktyg med visningsprogram och stödjande verktyg. Främst designad för parallella applikationer med stöd för MPI, OpenMP, CUDA, OpenCL, pthreads och OmpSs. Ytterligare funktioner inkluderar spårning av användarfunktioner och registrering av hårdvaruhändelser via PAPI. Gratis/öppen källkod - LGPL-2.1
FusionReactor Linux, Windows, macOS, AWS, Azure, Google Cloud Java, ColdFusion, Apache, MongoDB Fungerar med alla språk som stöds av JVM Utför Application Performance Management och Performance and Root Cause Analysis. Kombinerar APM och Low Level Developer Style Tooling; inkluderar även en debugger och Java-, minnes-, tråd- och CPU-profilerare. Proprietär
GlowCode Windows 64-bitars och 32-bitars applikationer, C, C++, .NET och dlls genererade av valfri språkkompilator. Prestanda- och minnesprofilerare som identifierar tidskrävande funktioner och upptäcker minnesläckor och fel. Proprietär
gprof Linux/Unix Alla språk som stöds av gcc Flera verktyg med kombinerad sampling och call-graph profilering. En uppsättning visualiseringsverktyg, VCG-verktyg, använder Call Graph Drawing Interface (CGDI) för att samverka med gprof. Ett annat visualiseringsverktyg som samverkar med gprof är KProf. Gratis/öppen källkod - BSD-versionen är en del av 4.2BSD och GNU-versionen är en del av GNU Binutils (av GNU Project )
HWPMC FreeBSD 6.0+ Ramverk för räkning och sampling av hårdvaruprestandaövervakning på systemnivå och processnivå som stöder flera arkitekturer. BSD
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, webbläsare, Apache, Nginx, Cassandra, Hadoop, MongoDB, Elasticsearch, Kafka Se Application Performance Management . Proprietär
Instrument med Xcode Mac OS C, C++, Objective-C/C++, Swift, Cocoa-appar. Instruments visar en tidslinje som visar alla händelser som inträffar i applikationen, såsom CPU-aktivitetsvariationer, minnesallokering och nätverks- och filaktivitet, tillsammans med grafer och statistik.

Grupper av händelser övervakas genom att välja specifika instrument från: Filaktivitet, Minnestilldelning, Tidsprofil, GPU-aktivitet etc. För systemomfattande påverkan av den körbara: Systemspårning, Systemanvändning, Nätverksanvändning, Energilogg etc. är användbara.

Fri. Proprietär. Medföljer Xcode, som också är gratis.
Intel rådgivare Linux och Windows. Viewer endast på macOS. C, C++, Data Parallel C++ och Fortran En samling design- och analysverktyg - vektoriseringsoptimering (SIMD), gängprototypframställning, automatiserad taklinjeanalys, avlastningsmodellering och flödesdiagramanalys Gratisprogram och proprietärt. Tillgänglig som en del av Intel oneAPI Base Toolkit .
Linux Trace Toolkit (LTT) Linux Kräver patchad kärna Samlar in data om processblockering, kontextväxlingar och exekveringstid. Detta hjälper till att identifiera prestandaproblem över flera processer eller trådar. Ersatt av LTTng . GPL
LTTng (Linux Trace Toolkit Next Generation) Linux Systemprogrampaket för korrelerad spårning av kärna, applikationer och bibliotek. GPL/LGPL/MIT
OProfil Linux Profilerar allt som körs på Linux-systemet, inklusive svårprofilerade program som avbrottshanterare och själva kärnan. Samplingsprofiler för Linux som räknar cachemissar, stall, minneshämtningar, etc. Open Source GPLv2
Oracle Solaris Studio Performance Analyzer Linux, Solaris C, C++, Fortran, Java; MPI Prestanda- och minnesprofilerare. Proprietärt gratisprogram
perfekta verktyg Linuxkärna 2.6.31+ Samplingsprofilerare med stöd för hårdvaruhändelser på flera arkitekturer. GPL
Performance Application Programming Interface (PAPI) Olika Bibliotek för maskinvaruprestandaräknare på moderna mikroprocessorer.
Pin från Intel Linux, Windows, macOS, Android Dynamiskt binärt instrumenteringssystem som tillåter användare att skapa anpassade programanalysverktyg. Proprietär men gratis för icke-kommersiellt bruk
Rational PurifyPlus AIX, Linux, Solaris, Windows Verktyg för prestandaprofilering, minnesfelsökning och kodtäckningsverktyg . Proprietär
Scalasca Linux C/C++, Fortran Parallell spåranalysator. Gratis/öppen källkod (BSD-licens)
Shark från Apple macOS (upphört med 10.7) Prestandaanalysator. Proprietärt gratisprogram
Systemknacka Linux Programmerbart systemspårnings-/probverktyg; kan skriptas för att generera tids- eller prestationsräknare- eller funktionsbaserade profiler för kärnan och/eller dess användarutrymme. Öppen källa
Valgrind Linux, macOS, Solaris, Android Alla, inklusive montör System för felsökning och profilering; stöder verktyg för att antingen upptäcka minneshantering och trådningsbuggar, eller profilprestanda (cachegrind och callgrind). KCacheGrind , valkyrie och alleyoop är front-ends för valgrind. Gratis/öppen källkod (GPL)
VTune Profiler från Intel Corporation

(tidigare VTune Amplifier)

Linux, Windows, viewer endast för macOS C, C++, C#, Data Parallel C++ (DPC++), Fortran, .NET, Java, Python, Go, ASM Assembly En samling profileringsanalyser implementerade med samplings-, instrumenterings- och processorspårningsteknologier. Inkluderar Hotspot, Threading, HPC, I/O, FPGA, GPU, System, Throttling och Microarchitecture analyser. Gratisprogram och proprietärt. Finns även som en del av Intel oneAPI-basverktygssatsen.
Windows Performance Analysis Toolkit från Microsoft Windows, Linux, Android Systemomfattande primära Windows-prestandaanalysverktyg inklusive CPU-sampling, CPU-schemaläggning, disk och allt. Kan öppna Linux LTTng och Perf Cpu Sampling spår; samt Android Perfetto-spår via plugins Proprietär gratisprogram med Linux / Android Open Source-plugins
Rotera högerzoom Linux, macOS, Viewer Endast för Windows Stöder de flesta kompilerade språk på ARM- och x86-processorer. Grafisk och kommandoradsstatistisk (händelsebaserad) profilerare.
VisualSim Linux, macOS, Microsoft Windows Stöder C/C++/SystemC Grafisk modellering och simuleringsplattform för att välja, analysera och validera arkitektur av komplexa elektroniksystem för prestanda, kraft och tillförlitlighet. Proprietär

C och C++

  • Arm MAP , en prestandaprofilerare som stöder Linux-plattformar.
  • AppDynamics , en applikationsprestandahanteringslösning [ buzzword ] för C/C++-applikationer via SDK.
  • AQtime Pro , en prestandaprofilerare och felsökning för minnesallokering som kan integreras i Microsoft Visual Studio och Embarcadero RAD Studio, eller kan köras som en fristående applikation.
  • IBM Rational Purify var en minnesfelsökning som möjliggjorde prestandaanalys.
  • Instrument (medföljer Xcode) används för att profilera en körbars minnesallokering, tidsanvändning, filsystemaktivitet, GPU-aktivitet etc.
  • Intel Parallel Studio innehåller Intel VTune Amplifier, som ställer in både seriella och parallella program. Det inkluderar även Intel Advisor och Intel Inspector. Intel Advisor optimerar vektorisering (användning av SIMD-instruktioner) och implementeringar av prototyper. Intel Inspector upptäcker och felsöker tävlingar, dödlägen och minnesfel.
  • Parasoft Insure++ tillhandahåller ett grafiskt verktyg som visar och animerar minnesallokeringar i realtid för att exponera minnesutblåsning, fragmentering, överanvändning, flaskhalsar och läckor.
  • Visual Studio Team System Profiler , kommersiell profilerare av Microsoft.

Java

JavaScript

.NETTO

  • CLR Profiler är en gratis minnesprofilerare som tillhandahålls av Microsoft för CLR -applikationer.
  • GlowCode är en prestanda- och minnesprofilerare för .NET-applikationer som använder C# och andra .NET-språk. Den identifierar tidskrävande funktioner och upptäcker minnesläckor och fel i inbyggda, hanterade och blandade Windows x64- och x86-applikationer.
  • Visuell Studio

PHP

Se även

externa länkar