Font Size: a A A

Title: AOT vs JIT: Impact of Profile Data on Code Qualit

Posted on:2018-10-02Degree:M.SType:Thesis
University:University of KansasCandidate:Wade, TylerFull Text:PDF
GTID:2448390002999334Subject:Computer Science
Abstract/Summary:
Dynamic or just-in-time (JIT) compilation can generate optimized native code dur- ing each program run, and is a popular technique used by process-level virtual machines (VM) to simultaneously achieve binary code portability and high execution performance. JIT compilers typically collect profile information at run-time to guide selective compilation and profile-guided optimizations (PGO). Ahead-of-time (AOT) compilation is an alternative model that can also achieve portability by converting the distributed binary to native code when the software is first installed. The AOT compilation model removes the overhead of online profile collection and dynamic compila- tion, and may reduce VM complexity. However, AOT compilation cannot customize the generated native code to different program inputs/behaviors. The goal of this work is to investigate and quantify the implications of the AOT compilation model on the quality of the generated native code for current VMs.;To achieve our goal, this study develops and conducts many new innovative experiments using a variety of novel frameworks. First, we quantify the quality of native code generated by the two compilation models for a state-of-the-art (HotSpot) Java VM. Second, we determine how the amount of profile data collected affects the qual- ity of generated code. Third, we develop a mechanism to determine the similarity or representative-ness of different profile data for a given program run for guiding PGOs. Fourth, we investigate how the accuracy of profile data affects its ability to effectively guide PGOs. Finally, we categorize the profile data types in our VM and explore the contribution of each such category to performance.
Keywords/Search Tags:Profile data, Code, JIT, AOT, Compilation
Related items