Výkonnostní a paměťová optimalizace nástroje JaCC

Date issued

2016

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

Citation

Collections

OPEN License Selector