Den exakta förutsägelsen av programmets minne krav är en kritisk komponent i mjukvaruutveckling. Befintliga rymdanalyser tar antingen inte hänsyn till deallocation eller antar specifika modeller av sopuppsamlare som inte nödvändigtvis motsvarar den faktiska minnesanvändningen. Vi presenterar ett nytt tillvägagångssätt för att härleda övre gränser för minneskrav för Java-liknande program som är parametriskt på begreppet objektlivstid, dvs. på när objekt blir samlarobjekt. Om objektens livslängd kan härledas från en åtkomlighetsanalys, så kan vår analys ge exakta övre gränser för minnesförbrukningen för en räckviddsbaserad sopsamlare. Intressant nog, om objekt livstider härleds från en hög liveness analys, då vi approximerar programmet minimala minneskrav, dvs. den maximala minnesanvändning när du använder en optimal sophämtning som frigör objekt så snart de blir döda. Nyckelidén är att integrera information om objektlivslängder i processen för att generera de återkommande ekvationer som fångar minnesanvändning i de olika programtillstånden. Om högstorleksgränsen är satt till det minneskrav som följer av vår analys, är det säkerställt att utförandet inte kommer att överskrida minnesgränsen med det enda antagandet att sophämtning fungerar när gränsen är uppnådd. Experiment på Java bytecode program ger bevis på genomförbarhet och noggrannhet av vår analys.
Konsekvens av värsta fall UBs på minnesanvändning av Java som program med sophämtning studeras i REF.
Parametric inference of memory requirements for garbage collected languages
{'venue': "ISMM '10", 'journal': None, 'mag_field_of_study': ['Computer Science']}