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 på 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
- inspectIT är en lösning för hantering av applikationsprestanda (APM) med öppen källkod [ buzzword ] för övervakning och analys av mjukvaruapplikationer, tillgänglig under Apache-licensen , version 2.0 (ALv2).
- JConsole är profileraren som kommer med Java Development Kit
- JProfiler
- JRockit Mission Control , en profilerare med låg overhead.
- Netbeans Profiler , en profiler integrerad i NetBeans IDE (internt använder jvisualvm profiler)
- Plumbr , Java-applikationsprestandaövervakning med automatisk rotorsaksdetektion. Länkar minnesläckor, GC-ineffektivitet, långsamma databas- och externa webbtjänstanrop, låsta trådar och andra prestandaproblem till raden i källkoden som orsakar dem.
- OverOps , Kontinuerlig tillförlitlighet för den moderna mjukvaruförsörjningskedjan, upptäcker automatiskt och levererar rotorsaksautomatisering för alla fel.
- VisualVM är ett visuellt verktyg som integrerar flera kommandorads JDK-verktyg och lätta profileringsmöjligheter. Den levereras med Java Development Kit sedan version 6, uppdatering 7.
- FusionReactor , Java-applikationsprestandaövervakning - låg overhead, produktionskvalitetsverktyg för produktionsfelsökning, kodprofilering, minnes- och trådanalys
JavaScript
- Firefox webbläsares utvecklarverktyg innehåller ett prestandaverktyg, som ger insikt i JavaScript-prestandan för en webbplats .
- Microsoft Visual Studio AJAX Profiling Extensions är ett gratis profileringsverktyg för JavaScript av Microsoft Research .
.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
- BlackFire.io
- Dbg
- Xdebug är ett PHP- tillägg som tillhandahåller felsöknings- och profileringsmöjligheter.
Se även
- Prestationsanalys
- Minnesdebugger (inkluderar lista över minnesprofilerare)
externa länkar
- Performance Analysis Tools , artikel från Lawrence Livermore National Laboratory