Serialization and Compression of Intermediate Representation in Java Virtual Machine ; Serialisering och komprimering av intermediär representation i Java Virtual Machine

Uložené v:
Podrobná bibliografia
Názov: Serialization and Compression of Intermediate Representation in Java Virtual Machine ; Serialisering och komprimering av intermediär representation i Java Virtual Machine
Autori: Zhu, Jiahua
Informácie o vydavateľovi: KTH, Skolan för elektroteknik och datavetenskap (EECS)
Rok vydania: 2025
Zbierka: Royal Inst. of Technology, Stockholm (KTH): Publication Database DiVA
Predmety: Java Virtual Machine, Intermediate Representation, Sea-of-Nodes, Serialization, Graph Compression, Intermediär representation, Serialisering, Grafkomprimering, Computer and Information Sciences, Data- och informationsvetenskap
Popis: Java applications often suffer from long warm-up times due to the tiered compilation process of the Java Virtual Machine (JVM). During execution, methods are initially interpreted and later compiled in stages, introducing delays before reaching peak performance. This thesis investigates whether the Sea-of-Nodes (SON) intermediate representation (IR), generated by the server compiler (C2), can be serialized and reused during the same execution of the Java Virtual Machine (JVM) to reduce redundant compilation work. The proposed solution focuses on serializing and compressing the IR after its initial generation by the JVM’s C2 compiler, allowing it to be deserialized and reused without repeated profiling or recompilation. Key challenges include preserving the graph structure of the IR during serialization and minimizing the resulting binary size. To address these, a custom Compressed Sparse Row (CSR)-like format is developed, along with integer encoding strategies (kbit and nibble encoding). External compression libraries are also evaluated. A prototype implementation demonstrates that IR graphs can be serialized, deserialized, and reintegrated within the same JVM run. Experimental results show that node data can be compressed by over 90%, and edges stored at just 0.5–1.9 bytes per edge. While the serialized IR is larger than compiled machine code, it retains critical structural data, enables compilation state reuse and enables portability in an ahead of time setup. This work confirms the feasibility of reusing the SON IR in the same execution, laying the groundwork for future efforts to persist IR across runs and reduce Java’s warm-up overhead. ; Java-applikationer lider ofta av långa uppvärmningstider på grund av Java Virtual Machines (JVM) stegvisa kompilering. Under exekvering tolkas metoder först och kompileras sedan i flera steg, vilket medför en fördröjning innan maximal prestanda uppnås. Detta examensarbete undersöker om den intermediära representationen (IR) som genereras av serverkompilatorn (C2), i form ...
Druh dokumentu: bachelor thesis
Popis súboru: application/pdf
Jazyk: English
Relation: TRITA-EECS-EX; 2025:706
Dostupnosť: http://urn.kb.se/resolve?urn=urn:nbn:se:kth:diva-372536
Rights: info:eu-repo/semantics/openAccess
Prístupové číslo: edsbas.7B75BD3F
Databáza: BASE
Popis
Abstrakt:Java applications often suffer from long warm-up times due to the tiered compilation process of the Java Virtual Machine (JVM). During execution, methods are initially interpreted and later compiled in stages, introducing delays before reaching peak performance. This thesis investigates whether the Sea-of-Nodes (SON) intermediate representation (IR), generated by the server compiler (C2), can be serialized and reused during the same execution of the Java Virtual Machine (JVM) to reduce redundant compilation work. The proposed solution focuses on serializing and compressing the IR after its initial generation by the JVM’s C2 compiler, allowing it to be deserialized and reused without repeated profiling or recompilation. Key challenges include preserving the graph structure of the IR during serialization and minimizing the resulting binary size. To address these, a custom Compressed Sparse Row (CSR)-like format is developed, along with integer encoding strategies (kbit and nibble encoding). External compression libraries are also evaluated. A prototype implementation demonstrates that IR graphs can be serialized, deserialized, and reintegrated within the same JVM run. Experimental results show that node data can be compressed by over 90%, and edges stored at just 0.5–1.9 bytes per edge. While the serialized IR is larger than compiled machine code, it retains critical structural data, enables compilation state reuse and enables portability in an ahead of time setup. This work confirms the feasibility of reusing the SON IR in the same execution, laying the groundwork for future efforts to persist IR across runs and reduce Java’s warm-up overhead. ; Java-applikationer lider ofta av långa uppvärmningstider på grund av Java Virtual Machines (JVM) stegvisa kompilering. Under exekvering tolkas metoder först och kompileras sedan i flera steg, vilket medför en fördröjning innan maximal prestanda uppnås. Detta examensarbete undersöker om den intermediära representationen (IR) som genereras av serverkompilatorn (C2), i form ...