Microsoft Open Sources Java Garbage Collection Analyzer

(Vertaling van post van Kay Ewbank) 
Microsoft heeft een collectie libaries voor het analyseren van HotSpot Java Garbage Collection (GC)-logbestanden beschikbaar gemaakt in een open source. 
GCToolkit ontleedt logfiles in verschillende events en biedt tegelijkertijd een API voor het samenvoegen van gegevens van die events.

Deze opensource toolkit kan worden gebruikt om willekeurige en complexe analyses te maken van de status van 'managed memory' in Java Virtual Machine (JVM).
corretto
Bij de introductie van de toolkit zei Kirk Pepperdine, Principal Engineer bij Microsoft:

"while GC is responsible for recovering memory in Java heap that is no longer in use, the term is often used as a euphemism for memory management and tuning GC or tuning the collector are often used with the understanding that it refers to tuning the JVM’s memory management subsystem." 
Hij ging verder met te zeggen dat, wat nog belangrijker is, het al lang bekend is dat een suboptimale configuratiecollector ertoe zal leiden dat uw toepassing meer CPU en geheugen vereist, terwijl het tegelijkertijd uw eindgebruikerservaring verslechtert. Met andere woorden, slecht afgesteld staat vaak gelijk aan een duurdere runtime en ontevreden gebruikers.

Het probleem is dat het moeilijk is om 'garbage collection' in evenwicht te brengen, en dit is waar GCToolKit bij heeft geholpen. De toolkit bestaat uit drie Java-modules voor de API, GC-logbestand-parsers en een backplane voor berichten op basis van Vert.x.

De API-module biedt de mogelijkheid om een ​​GC-logbestand te analyseren met behulp van een paar methodeaanroepen die vervolgens toegang krijgen tot de parser en Vert.x. De parsermodule is een verzameling reguliere expressies en code die volgens Pepperdine gedurende vele jaren is ontwikkeld om de meest robuuste GC-logparser te zijn die er is. De op Vert.x gebaseerde messaging-backplane maakt gebruik van twee berichtbussen, één om te streamen vanaf een gegevensbron, met listeners die de gegevens van de gegevensbron omzetten in gebeurtenissen die ofwel een GC-cyclus of een veilig punt vertegenwoordigen. Deze evenementen worden vervolgens gepubliceerd op een evenementenbus. Luisteraars op de gebeurtenisbus kunnen dan gebeurtenissen ontvangen en verwerken die voor hen van belang zijn.

De parser zendt discrete JVM-gebeurtenissen uit (GC-cyclusgebeurtenissen of veilige puntgebeurtenissen), zodat u code kunt schrijven om de gegevens van die gebeurtenissen vast te leggen en te analyseren. GCToolkit biedt een eenvoudig aggregator-/aggregatieraamwerk voor het vastleggen en analyseren van GC-logbestandgegevens.