Detail publikace
Comparing Rapid Type Analysis with Points-To Analysis in GraalVM Native Image
překladač, ahead-of-time kompilace, statická analýza, optimalizace, Java, GraalVM
Interprocedurální analýza je základní technika, která umožňuje pokročilé optimalizace kompilátoru. Důležitým příkladem takové metody je points-to analýza používaná ahead-of-time (AOT) kompilátory k identifikaci programových prvků (tříd, metod, atributů) používaných alespoň na jedné programové cestě. GraalVM Native Image využívá points-to analýzu k optimalizaci Java aplikací, což je časově náročný krok překladu. V práci zkoumáme, jak moc lze zlepšit dobu analýzy nahrazením points-to analýzy za rapid type analýzu (RTA), která počítá dosažitelné prvky rychleji, ale má menší přesnost. Navrhujeme několik rozšíření předchozích přístupů k RTA: vytvoření paralelní, inkrementální analýzy podporující heap snapshoting. Představujeme rozsáhlé experimentální vyhodnocení použití RTA místo points-to, ve kterém nám RTA umožnila zkrátit dobu analýzy pro Spring Petclinic (oblíbená demo aplikace Spring frameworku) o 64 % a celkovou dobu překladu o 35 % za cenu zvýšení velikosti binárního souboru kvůli nepřesnosti o 15 %.
@inproceedings{BUT187601,
author="KOZÁK, D. and JOVANOVIC, V. and STANCU, C. and VOJNAR, T. and WIMMER, C.",
title="Comparing Rapid Type Analysis with Points-To Analysis in GraalVM Native Image",
booktitle="Proceedings of the 20th ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes",
year="2023",
pages="129--142",
publisher="Association for Computing Machinery",
address="New York",
doi="10.1145/3617651.3622980",
isbn="979-8-4007-0380-5"
}