Introduction Query Languages Empirical Evaluation Conclusion The Measured Performance of Declarative Approaches to Finding Data in Unstructured Heaps Gregory M. Kapfhammer Department of Computer Science Allegheny College http://www.cs.allegheny.edu/~gkapfham/ Department of Mathematics and Computer Science Westminster College, December 2009 In conjunction with William Jones (Allegheny College) Featuring an image from www.CampusBicycle.com The Measured Performance of Declarative Approaches to Finding Data in Unstructured Heaps 1 / 20
Introduction Query Languages Empirical Evaluation Conclusion Important Contributions JD 100 Benchmark Results 80 Execution Time (ms) Benchmark 60 Executor 40 20 Configuration Suggestions 0 2OPT DGR GRD HGS Prioritization Technique Detailed Empirical Study Performance Evaluation Overview: Extend and empirically evaluate the efficiency and effectiveness of declarative approaches to finding data in the unstructured heap of a Java virtual machine The Measured Performance of Declarative Approaches to Finding Data in Unstructured Heaps 2 / 20
Introduction Query Languages Empirical Evaluation Conclusion Important Contributions JD 100 Benchmark Results 80 Execution Time (ms) Benchmark 60 Executor 40 20 Configuration Suggestions 0 2OPT DGR GRD HGS Prioritization Technique Detailed Empirical Study Performance Evaluation Overview: Extend and empirically evaluate the efficiency and effectiveness of declarative approaches to finding data in the unstructured heap of a Java virtual machine The Measured Performance of Declarative Approaches to Finding Data in Unstructured Heaps 2 / 20
Introduction Query Languages Empirical Evaluation Conclusion Important Contributions JD 100 Benchmark Results 80 Execution Time (ms) Benchmark 60 Executor 40 20 Configuration Suggestions 0 2OPT DGR GRD HGS Prioritization Technique Detailed Empirical Study Performance Evaluation Overview: Extend and empirically evaluate the efficiency and effectiveness of declarative approaches to finding data in the unstructured heap of a Java virtual machine The Measured Performance of Declarative Approaches to Finding Data in Unstructured Heaps 2 / 20
Introduction Query Languages Empirical Evaluation Conclusion Important Contributions JD 100 Benchmark Results 80 Execution Time (ms) Benchmark 60 Executor 40 20 Configuration Suggestions 0 2OPT DGR GRD HGS Prioritization Technique Detailed Empirical Study Performance Evaluation Overview: Extend and empirically evaluate the efficiency and effectiveness of declarative approaches to finding data in the unstructured heap of a Java virtual machine The Measured Performance of Declarative Approaches to Finding Data in Unstructured Heaps 2 / 20
Introduction Query Languages Empirical Evaluation Conclusion Important Contributions JD 100 Benchmark Results 80 Execution Time (ms) Benchmark 60 Executor 40 20 Configuration Suggestions 0 2OPT DGR GRD HGS Prioritization Technique Detailed Empirical Study Performance Evaluation Analysis: Develop and use tree and random forest statistical models and data visualizations that help to identify efficiency and effectiveness trade-offs for data location strategies The Measured Performance of Declarative Approaches to Finding Data in Unstructured Heaps 2 / 20
Introduction Query Languages Empirical Evaluation Conclusion The Value of Virtual Machines Byte Code Virtual Virtual Machine Machine The virtual machine enables platform independence, handles migration, manages limited resources, provides optimization The Measured Performance of Declarative Approaches to Finding Data in Unstructured Heaps 3 / 20
Introduction Query Languages Empirical Evaluation Conclusion The Value of Virtual Machines Byte Code Virtual Virtual Machine Machine The virtual machine enables platform independence, handles migration, manages limited resources, provides optimization The Measured Performance of Declarative Approaches to Finding Data in Unstructured Heaps 3 / 20
Introduction Query Languages Empirical Evaluation Conclusion The Value of Virtual Machines Byte Code Byte Code Virtual Virtual Machine Machine The virtual machine enables platform independence, handles migration, manages limited resources, provides optimization The Measured Performance of Declarative Approaches to Finding Data in Unstructured Heaps 3 / 20
Introduction Query Languages Empirical Evaluation Conclusion A Look Inside the Java Virtual Machine Input Output Byte Code Fast? Interpreter? Virtual Machine Adaptive? JIT? methodA testOne Program Stack The virtual machine manages resources for the program The Measured Performance of Declarative Approaches to Finding Data in Unstructured Heaps 4 / 20
Introduction Query Languages Empirical Evaluation Conclusion A Look Inside the Java Virtual Machine Input Output Byte Code Fast? Interpreter? Virtual Machine Adaptive? JIT? methodA Heap testOne Program Stack The virtual machine manages resources for the program The Measured Performance of Declarative Approaches to Finding Data in Unstructured Heaps 4 / 20
Introduction Query Languages Empirical Evaluation Conclusion A Look Inside the Java Virtual Machine Input Output Byte Code Fast? Interpreter? Virtual Machine Adaptive? JIT? methodA Heap testOne Program Native Code Cache Stack The virtual machine manages resources for the program The Measured Performance of Declarative Approaches to Finding Data in Unstructured Heaps 4 / 20
Introduction Query Languages Empirical Evaluation Conclusion The Container Hierarchy in the Heap B Tree Transaction Processor LinkedList ArrayList Vector Objects (Type R) Objects (Type S) Objects (Type T) The unstructured heap stores objects that are connected in complex and unpredictable ways (Xu and Rountev, ICSE 2008) The Measured Performance of Declarative Approaches to Finding Data in Unstructured Heaps 5 / 20
Introduction Query Languages Empirical Evaluation Conclusion The Container Hierarchy in the Heap B Tree Transaction Processor LinkedList ArrayList Vector Objects (Type R) Objects (Type S) Objects (Type T) A memory leak may occur when a Java program incorrectly maintains object references (Xu and Rountev, ICSE 2008) The Measured Performance of Declarative Approaches to Finding Data in Unstructured Heaps 5 / 20
Introduction Query Languages Empirical Evaluation Conclusion The Container Hierarchy in the Heap B Tree Transaction Processor LinkedList ArrayList Vector Objects (Type R) Objects (Type S) Objects (Type T) Why is my program “leaking”? The standard method of iterating through large collections is often challenging and error prone! The Measured Performance of Declarative Approaches to Finding Data in Unstructured Heaps 5 / 20
Introduction Query Languages Empirical Evaluation Conclusion JQL: Declaratively Finding Objects JQL File Java Query Language (JQL) JQL Compiler Features Pre-compilation Java Source Code AOP with AspectJ Method queries Caching Java Compiler Optimizations References Java Bytecodes Collection Willis et al. ECOOP 2006 Query Executor Willis et al. OOPSLA 2008 Query Results Cached Query Results The Measured Performance of Declarative Approaches to Finding Data in Unstructured Heaps 6 / 20
Introduction Query Languages Empirical Evaluation Conclusion JQL: Declaratively Finding Objects JQL File Java Query Language (JQL) JQL Compiler Features Pre-compilation Java Source Code AOP with AspectJ Method queries Caching Java Compiler Optimizations References Java Bytecodes Collection Willis et al. ECOOP 2006 Query Executor Willis et al. OOPSLA 2008 Query Results Cached Query Results The Measured Performance of Declarative Approaches to Finding Data in Unstructured Heaps 6 / 20
Introduction Query Languages Empirical Evaluation Conclusion JQL: Declaratively Finding Objects JQL File Java Query Language (JQL) JQL Compiler Features Pre-compilation Java Source Code AOP with AspectJ Method queries Caching Java Compiler Optimizations References Java Bytecodes Collection Willis et al. ECOOP 2006 Query Executor Willis et al. OOPSLA 2008 Query Results Cached Query Results The Measured Performance of Declarative Approaches to Finding Data in Unstructured Heaps 6 / 20
Introduction Query Languages Empirical Evaluation Conclusion JoSQL: Declaratively Finding Objects SQL String Query Object Java Objects SQL (JoSQL) Parse SQL Features SQL statements String parsing Executable Query Collection Java reflection Query facilities Query Executor References http://josql.sf.net/ Query Results The Measured Performance of Declarative Approaches to Finding Data in Unstructured Heaps 7 / 20
Introduction Query Languages Empirical Evaluation Conclusion JoSQL: Declaratively Finding Objects SQL String Query Object Java Objects SQL (JoSQL) Parse SQL Features SQL statements String parsing Executable Query Collection Java reflection Query facilities Query Executor References http://josql.sf.net/ Query Results The Measured Performance of Declarative Approaches to Finding Data in Unstructured Heaps 7 / 20
Recommend
More recommend