profiling v javě

6
Profiling v Javě Richard Lipka Department of Computer Science and Engineering Faculty of Applied Sciences University of West Bohemia, Pilsen, Czech Republic

Upload: summer

Post on 06-Jan-2016

31 views

Category:

Documents


0 download

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

Page 1: Profiling  v Javě

Profiling v Javě

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

Page 2: Profiling  v Javě

> 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

Page 3: Profiling  v Javě

> 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, …)

Page 4: Profiling  v Javě

> 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áří)

Page 5: Profiling  v Javě

> 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

Page 6: Profiling  v Javě

Děkuji za pozornost