Semantic Locality Project



For the analysis of real and relevant JavaScript workloads we will leverage and enhance our previously developed JavaScript benchmarking infrastructure [2]. The work on V8 will be done in close collaboration with the V8 team in Munich, Germany. The project will be driven by real-world relevance and performance that may also help developing deeper conceptual insight. Both, actual production code as well as a top publication are our targets.

We propose to study how the use of dynamically allocated memory in JavaScript programs evolves at runtime and then design and implement advanced estimation technology in V8 based on our findings for improved memory management performance. In particular, we are interested in identifying and leveraging what we call semantic locality properties related to higher-level usage (rather than lower-level access) of objects such as per-object lifetimes and multi-object access patterns. Knowledge of per-object lifetime enables pretenuring in generational garbage collectors.
Knowledge of multi-object access patterns may enable what we call prealignment of groups of objects for better cache utilization. V8 already features infrastructure for estimating per-object lifetimes called mementos which we plan to utilize and enhance. Our previous work on benchmarking C memory allocators [1] and JavaScript memory management [2] is the starting point for this project. We will analyze real and relevant JavaScript workloads further [2], derive lifetime and access models that are more accurate than previous models [2], and then enhance V8’s pretenuring technology and prototype prealignment in V8 according to our analytical results.
Tatsächlicher Beginn/ -es Ende3/04/152/04/16

Systematik der Wissenschaftszweige 2002

  • 1108 Informatik