Letový zapisovač JDK - JDK Flight Recorder
Letový zapisovač JDK je záznamník událostí zabudovaný do Virtuální stroj Java. Lze jej považovat za softwarový ekvivalent záznamníku datových letů (Black Box) v komerčním letadle. Zachycuje informace o JVM a aplikace spuštěná v JVM. Existuje široká škála zachycených dat, například profilování metod, profilování alokace a události související s odvozem odpadu. The Letový zapisovač JDK byl navržen tak, aby minimalizoval Efekt pozorovatele v profilovaném systému a má být vždy zapnutý v produkčních systémech. Technologie byla otevřena v roce 2018.
Analýza a vizualizace letových záznamů se obvykle provádí pomocí Řízení mise JDK.
Technologie
Záznamový soubor se skládá z binárních částí dat. Každý blok je popisující a obsažený v sobě. Jinými slovy, metadata (například datový typ a typ obsahu každého atributu) potřebná k použití dat (nejen analyzovat události, ale ve skutečnosti je používat) jsou součástí bloku. Také všechny hodnoty potřebné k vyřešení prostřednictvím např. konstantní fondy jsou také součástí bloku.
K zefektivnění JFR se používá široká škála technologií, například:
- Binární reprezentace, žádné překlady tam a zpět do řetězců, vyrovnávací paměti jsou efektivně emitovány na disk
- Většina událostí se zaznamenává do místních nativních vyrovnávacích pamětí vlákna
- Na některých platformách invariantní TSC se používá pro efektivní časové razítko
- Schéma komprimace celého čísla, aby se snížila velikost paměti a souboru
- Vzhledem k tomu, že je implementováno v JVM, mnoho dat je snadno dostupných nebo emitovaných v době, kdy jsou data snadno dostupná, což udržuje nízké náklady
Pokud převádíte binární záznam na JSON, může snadno vyhodit do povětří dva řády nebo více, v závislosti na délce a zaznamenaném obsahu.
Očekávaná režie výkonu JFR s použitím výchozí šablony je menší než procento a pro šablonu profilování méně než dvě procenta.
Dějiny
Letový zapisovač JDK začínal jako letový zapisovač JRockit a původně se používal jako prostředek ke shromažďování údajů, které se používají ke zlepšení samotného JVM.[1][2] Poté, co společnost Oracle získala Sun Microsystems, byla JRockit Flight Recorder přejmenována na Java Flight Recorder.[3] V roce 2018 byl Java Flight Recorder otevřen a vydán jako součást OpenJDK 11.[4] Když byl otevřený zdroj, byl přejmenován na JDK Flight Recorder, kvůli problémům s ochrannou známkou Java.
Verze
Toto jsou verze dostupného formátu souboru JFR. Nezahrnuje všechny verze, které kdy existovaly, ale spíše verze, které existují v JVM po migraci na HotSpot.
Verze JFR | Verze JDK |
---|---|
v0.9 | Oracle JDK 7 (u4 +), Oracle JDK 8 |
v1.0 | Oracle JDK 9, Oracle JDK 10 |
v2.0 | Oracle JDK 11+, Open JDK 11+, Azul JDK 8 a Azul JDK 11+ |
Viz také
Reference
- ^ "Runtime Guide JRockit Flight Recorder" (PDF). Citováno 22. ledna 2019.
- ^ Oracle JRockit: Definitivní průvodce. Packt Pub. str. 588. ISBN 1847198066.
- ^ "Runtime průvodce Java Flight Recorder". Citováno 22. ledna 2019.
- ^ „JEP 328: Flight Recorder“. Citováno 22. ledna 2019.