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 JFRVerze JDK
v0.9Oracle JDK 7 (u4 +), Oracle JDK 8
v1.0Oracle JDK 9, Oracle JDK 10
v2.0Oracle JDK 11+, Open JDK 11+, Azul JDK 8 a Azul JDK 11+

Viz také

Reference

  1. ^ "Runtime Guide JRockit Flight Recorder" (PDF). Citováno 22. ledna 2019.
  2. ^ Oracle JRockit: Definitivní průvodce. Packt Pub. str. 588. ISBN  1847198066.
  3. ^ "Runtime průvodce Java Flight Recorder". Citováno 22. ledna 2019.
  4. ^ „JEP 328: Flight Recorder“. Citováno 22. ledna 2019.

externí odkazy