microsoft néhány napja közölte a hírt közzétette „GCToolkit” eszközének forráskódját, amely a Java Garbage Collection naplófájljainak elemzésére szolgáló könyvtárak összessége, amelyekkel az összes GCToolkit kód elérhető a GitHubon az MIT licenc alatt.
A GCToolkit három Java modulból áll amely API-kat, GC naplófájl-elemzőket és Vert.x eszközkészlet-alapú üzenet hátlapot tartalmaz a reszponzív alkalmazások létrehozásához a JVM-en. Ezzel a segédprogrammal a felhasználók tetszőleges és összetett letapogatásokat készíthetnek a felügyelt memória állapotáról a JVM -ben.
Ahogy a neve is sugallja, ez egy könyvtárkészlet a Java szemétgyűjtési (GC) naplófájlok elemzésére és külön eseményekben történő elemzésére. Tegyen ki egy API -t az elkötelezettség javítása érdekében az eszköztárral és az adatok összesítésével ezt lehetővé teszi a felhasználó számára, hogy tetszőleges komplex elemzéseket készítsen a JVM felügyelt memóriájának állapotáról.
A csapat szerint ez a GCToolkit felhasználói belépési pontja, amely néhány metódushívásban elrejti a belső modulok részleteit. Az API -n kívül, van két másik modul: az elemző modul és Vert.x. Az elemző modul rendszeres kifejezések és kódok gyűjteményén alapul a legerősebb GC naplóelemzőnek tekinthető.
Az üzenetküldő háttérrendszer alapján A Vert.x két üzenetbuszt használ: előbbi adatforrásból továbbítja az adatokat. A jelenlegi megvalósítás a GC naplófájl naplósorait adja át. Ennek a busznak a fogyasztói azok az analizátorok, amelyek az adatforrásból származó adatokat olyan eseményekké alakítják, amelyek GC -ciklust vagy biztonságos pontot képviselnek. Ezeket az eseményeket a második üzenetbusz: az eseménybusz teszi közzé. Az eseménybusz -előfizetők ezután értesíthetők és feldolgozhatják az őket érdeklő eseményeket.
Az elemző diszkrét JVM eseményeket bocsát kilehetővé teszi, hogy kódot írjon az események adatainak rögzítéséhez és elemzéséhez. A GC naplófájlok adatgyűjtésének és elemzésének megkönnyítése érdekében a GCToolkit egyszerű összesítési keretrendszert biztosít. A felhasználó által eldöntendő adatok típusa vagy az elvégzendő elemzés típusa a felhasználó belátása szerint történik. Például a halom kihasználtságának elemzéséhez szüneteltetett események rögzítéséhez az aggregátor rögzíti az eseményt, kivonja a vonatkozó adatokat, és továbbítja az adatokat az összesítésnek.
Ez egy értelmes elemzésben egyesíti az adatokat, például a szemétgyűjtés utáni teljes halomhasználatot. A kapott adatok grafikon, táblázat vagy más felhasználóbarát formátumban is megjeleníthetők. Ennél is fontosabb, hogy a csapat szerint egy nem optimális gyűjtőkonfiguráció olyan alkalmazást eredményez, amely több CPU-t és memóriát igényel, miközben rontja a végfelhasználói élményt. Más szóval, a rosszul hangolt gyűjtő gyakran drágább futási időt és elégedetlen felhasználókat jelent.
A Microsoft növekvő érdeklődése miatt a Java platform iránt fókusz a nyílt forráskódban ez is növeli a Java közösség számára nyújtott előnyöket. Miután a Microsoft jelentős mértékben hozzájárult a macOS M1 porthoz és a Windows Arm -hoz, a Microsoft megerősítette az OpenJDK iránti elkötelezettségét azáltal, hogy bevezette saját OpenJDK verzióját, és csatlakozott az Eclipse Adoptium munkacsoporthoz (korábbi nevén AdoptOpenJDK).
A GCToolkit nyílt forráskódúvá tételével A Microsoft megpróbál jobb módszert nyújtani a JVM belsejének megismerésére a GC kezeléséről és memóriakiosztás. A jobb láthatóság jobb konfigurációt tesz lehetővé, ami előnyös mind az alkalmazás végfelhasználói, mind az annak kezeléséért felelős műszaki személyzet számára.
Az egyszerű API és a könnyen használható kimeneti mechanizmusok azt ígérik, hogy javítják a GC naplók olvasásának feladatát azáltal, hogy különféle mechanizmusokat biztosítanak az adatok elemzésére, kinyerésére és megjelenítésére.
forrás: https://devblogs.microsoft.com