Detail publikace
Comparing Rapid Type Analysis with Points-To Analysis in GraalVM Native Image
Kozák David, Ing. (UITS FIT VUT)
Stancu Codrut (Oracle)
Vojnar Tomáš, prof. Ing., Ph.D. (UITS FIT VUT)
Wimmer Christian (Oracle)
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{FITPUB13102, author = "Vojin Jovanovic and David Koz\'{a}k and Codrut Stancu and Tom\'{a}\v{s} Vojnar and Christian Wimmer", title = "Comparing Rapid Type Analysis with Points-To Analysis in GraalVM Native Image", pages = "129--142", booktitle = "Proceedings of the 20th ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes", year = 2023, location = "New York, US", publisher = "Association for Computing Machinery", ISBN = "979-8-4007-0380-5", doi = "10.1145/3617651.3622980", language = "english", url = "https://www.fit.vut.cz/research/publication/13102" }