profiling v javě

Post on 06-Jan-2016

31 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Profiling v Javě. Richard Lipka Department of Computer Science and Engineering Faculty of Applied Sciences University of West Bohemia, Pilsen , Czech Republic. Možnosti. Zachytávání událostí JVM Tools Interface API - PowerPoint PPT Presentation

TRANSCRIPT

Profiling v Javě

Richard LipkaDepartment of Computer Science and EngineeringFaculty of Applied SciencesUniversity of West Bohemia, Pilsen, Czech Republic

> ReliSA

Možnosti

> Zachytávání událostí> JVM Tools Interface API

> Lze poslouchat libovolné události v programu / JVM a reagovat spuštěním vlastního programu

> Vzorkování> Aktuální stav VM a heapdump

> Instrumentace bytecode / programu> Doplnění sledovacích instrukcí

> Ručně> Vlastní instrumentace

> ReliSA

Ruční měření

> Sledování času> currentTimeMilis() – čas v milisekundách

> nanoTime() – „čas“ v nanosekundách (ale trvá cca 20* déle), vlastní timer

> Vzorkování> Thread.getStackTrace() – kde jsem ve vlákně (lze i z konzole – jstack <pid>)

> Sledování paměti> freeMemory(), totalMemory(), maxMemory() – lze použít

za běhu programu

> Jmap a JHat – k dispozici v JRE, kompletní memory dump

> -XX: parametry (PrintClassHistogram, …)

> ReliSA

VisualVM

>Součást NetBeans, existuje i samostatná verze a plugin do Eclipse

>Sleduje>Běh aplikace (stav vláken v čase)

>Profilování CPU (co se právě dělá, kde aplikace tráví čas)

>Profilování paměti (jaké objekty se vytváří)

> ReliSA

VisualVM a NetBeans

> Integrováno podobně jako debugger> Lze vložit profilovací body

> Lze nastavit podmínky pro spouštění akcí> Snapshot systému> Memory dump

> Dokáže procházet a zpracovávat heap > Přehled všech tříd a instancí, počty instancí …

> Analýza referencí

> OQL jazyk pro hledání

select a from java.util.LinkedList awhere a.size > 10

Děkuji za pozornost

top related