Profilering (datavetenskap)
Profilering - samla in egenskaper hos programmet , såsom exekveringstiden för enskilda fragment (vanligtvis subrutiner), antalet korrekt förutsagda villkorliga hopp , antalet cachemissar , etc. Verktyget som används för att analysera arbetet kallas en profilerare eller profilerare ( eng. profiler ). Utförs vanligtvis i samband med programoptimering .
Egenskaper kan vara hårdvarudrivna (tid) eller mjukvarudrivna (funktionsbegäran). Programanalysverktyg är extremt viktiga för att förstå ett programs beteende. Mjukvarudesigners behöver sådana verktyg för att utvärdera hur väl ett jobb utförs. Programmerare behöver verktyg för att analysera sina program och identifiera kritiska programområden .
Detta används ofta för att bestämma hur lång tid det tar att köra vissa delar av ett program, hur ofta de körs eller för att generera en samtalsgraf . Vanligtvis används denna information för att identifiera de områden i programmet som fungerar mest. Dessa tidskrävande områden kan optimeras för att köras snabbare.
Det finns också kodtäckningsanalys, vilket är processen att identifiera oanvända kodavsnitt genom att till exempel köra programmet flera gånger.
Ett exempel på prestandaprofileringsprogram
- Lista : Lista över prestationsanalysverktyg
Universallösningar för flera plattformar:
- gprof (Linux/Unix/*BSD) - Flera implementeringar av den traditionella profileraren som kräver att kompilatorn instrumenterar programmet.
- VTune (Windows/Linux) är en kommersiell produkt från Intel
- Intel® Single Event API (Windows/Linux/Android/MAC OS/...) är en icke-kommersiell öppen källkodsprodukt från Intel
- CodeAnalyst (Windows/Linux) - gratis programvara från AMD
Lösningar för enskilda operativsystem
- AQTime (Windows)
- Instruments (tidigare Shark; Mac OS X)
- Perf (Linux) — process- och kärnprofileringssystem implementerat i Linux-kärnan
- oprofile (Linux) - äldre Linux-systemprofilerare
- Valgrind (Linux) - ett verktyg för dynamisk binär analys av program, innehåller 2 plug-ins för prestandaprofilering - Cachegrind och Callgrind.
För individuella programmeringsspråk (sådana verktyg kan byggas in i utvecklingsmiljön ):
- Xdebug är ett PHP - skriptprofileringsverktyg .
- XHProf är en profilerare för PHP-språket.
Ett exempel på minnesprofileringsprogram:
- dotMemory (.NET)
- Valgrind (Linux) - Flera plugins för minnesprofilering.
Länkar
- På jakt efter en svag länk: hur man hittar flaskhalsar i applikationer / Hacker, 2011-03-22 - recension av gprof, gcov, google-perftools, valgrind
- Nybörjarguide till prestandaprofilering , Visual Studio 2015 Hjälp, Microsoft
- Snabba upp koden med GNU profiler (gprof) / IBM developerWorks, 04/03/2006