Výkonnostní a paměťová optimalizace nástroje JaCC
Date issued
2016
Authors
Journal Title
Journal ISSN
Volume Title
Publisher
Západočeská univerzita v Plzni
Abstract
Předmětem této práce je nástroj pro statickou analýzu kódu Java Class Comparator, zkráceně JaCC. Tento nástroj umožňuje ověřovat zdrojovou i binární kompatibilitu komponentových aplikací implementovaných v programovacím jazyce Java. Nedokonalostí tohoto nástroje jsou ovšem jeho vysoké paměťové požadavky. Hlavním cílem této práce je proto optimalizace tohoto nástroje, a to jak z hlediska jeho výkonnosti, tak především z hlediska jeho paměťové náročnosti.
Nástroj JaCC při svém zpracování postupně vytváří a uchovává velké množství datových struktur, které jsou příčinou jeho vysokých paměťových požadavků. V rámci optimalizace nástroje JaCC byla provedena integrace knihovny Ehcache, která nabízí prostředky pro rozšíření úložného prostoru o paměť pevného disku. S využitím těchto prostředků potom může fyzická paměť fungovat jako mezipaměť a může uchovávat jen omezenou pracovní množinu datových struktur.
Experimenty ukazují, že optimalizace nástroje přinesla úsporu paměti v rozmezí 25\% - 45\%. Tyto experimenty také potvrzují hypotézu, že je míra úspory paměti
závislá na konkrétním případu užití nástroje a její hodnota je nepřímo úměrná na podílu datových struktur, které nebyly předmětem optimalizace. Vedlejším efektem této paměťové optimalizace je na druhé straně prodloužení průměrné délky doby běhu na 2 až 3 násobek původní délky doby běhu. Příčinou je použití pevného disku jako dodatečné úložní vrstvy, ovšem s vyšší přístupovou dobou. Jelikož je optimalizované řešení plně přizpůsobitelné, je možné hledat kompromis mezi mírou ušetřené paměti a délkou doby běhu.
Description
Subject(s)
jacc, memory, optimization, java, ehcache, kryo