En experimentell studie av trender i beteende bland objekt klassificerade som heta och kalla av en skräpsamlare för Java virtual machine

Hanna Nyblom


Abstract

En grundläggande hypotes för Java virtual machine-skräpsamlaren "ThinGC", Mingkun Yang et al. [1], en utveckling av Oracles "ZGC", är att ett nyttjande av eventuell temporal lokalitet skulle kunna optimisera skräpsamling genom att begränsa den totala mänged objekt som behöver behandlas. För att uppnå optimisering i skräpsmling klassificerar ThinGC objekt som heta (nyligen refererade) eller kalla, separerar heta och kalla objekt i skilda minnesutrymmen, och skräpsamlar dessa minnesutrymmen separat med två skräpsamlare.

För att undersöka i vilken utsträckning denna temporala lokalitet faktiskt kan observeras, granskar denna uppsats beteende av objekt klassificerade som heta eller kalla av ThinGC. Undersökt beteende inkluderar: tendens bland kalla objekt att förbli kalla, antal cykler objekt förväntas förbli kalla och om tendenser bland objekt att förbli heta eller kalla är relaterade till objekttyp.

För att kunna granska beteende av objekt loggas värmeinformation för alla objekt i "Benchmark"-sviten DaCapo under varje skräpsamlingscykel av ThinGC. Värmeinformationen för varje objekt kompileras sedan genom att följa vidarebefodringar av adresser, och tillslut beräknas mätetal som uppskattar objektens beteende.

Analys av de diagram och tabeller som presenterar resultaten av beräkningen av mätetalen visar, till exempel, att återuppvärmningar av objekt är sällsynta, att kalla objekt oftast håller sig stadigt kalla, och att kalla objekt oftast håller sig kalla längre än varma objekt håller sig varma.

Resultaten visar tydligt skilda beteenden för heta och kalla objekt och indikerar att konceptet att klassificera objekt efter värmeinformation och behandla heta och kalla objekt separat kan vara välgrundat.

Resultaten visar också att vissa objektklasser är mer eller mindre benägna att hålla sig kalla. Om dessa klassbeteenden kan visas vara pålitliga genom att undersöka en större mängd program skulle informationen kunna vara användbar som en baslinje för finjustering av skräpsamling. Om värmeinformation kan samlas, och liknande mätetal beräknas jämnlöpandes, skulle denna information också kunna bistå skräpsamlaren med att ta direkta beslut.

[1] Albert Mingkun Yang et al. “ThinGC: Complete Isolation With MarginalOverhead.” Submitted.