{"title":"Efficient Classloading Strategies for Interprocedural Analyses in the Presence of Dynamic Classloading","authors":"Kyungwoon Lee, Qasim Ali, S. Midkiff","doi":"10.1109/WODA.2007.2","DOIUrl":"https://doi.org/10.1109/WODA.2007.2","url":null,"abstract":"In the presence of dynamic classloading, performing interprocedural analysis (IPA) too early can lead to repeatedly performing the IPA as new classes are loaded, while performing it too late will cause a performance degradation by running unoptimized code for too long. This paper investigates how programs load classes and how this affects the performance when performing IPA. From this investigation, two classloading techniques are described and evaluated. We first describe a classloader that eagerly preloads classes whose names appear in the constant pool. By loading classes as early as possible, the preloading classloader reduces the chances of new classes being loaded after an IPA is performed, and thus can improve performance by reducing the number of IPAs performed. We next describe a technique that delays the IPA, causing it to be performed late enough to dramatically reduce the need for re-analyses and early enough to obtain the benefits of the IPA. When these two classloading techniques are used with a real IPA - an escape analysis to enforce sequential consistency in Java programs - the speedups relative to the default non- preloading classloader are 1.87 and 2.30 respectively, on average.","PeriodicalId":235237,"journal":{"name":"Fifth International Workshop on Dynamic Analysis (WODA '07)","volume":"15 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-05-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"117064286","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Industrial Evaluation of a Log File Analysis Methodology","authors":"Don Yantzi, J. Andrews","doi":"10.1109/WODA.2007.7","DOIUrl":"https://doi.org/10.1109/WODA.2007.7","url":null,"abstract":"Test result evaluation programs often take the form of log file analyzers, which analyze text logs of events that have happened during testing. Previously, we proposed a methodology for deriving logging instrumentation and state-based log file analyzer programs from requirements. In this paper, we report on an industrial evaluation in which the methodology was carried out on two pieces of commercial software in a commercial setting. We report on our quantitative and qualitative observations and on recommendations for improving the methodology and the tools used.","PeriodicalId":235237,"journal":{"name":"Fifth International Workshop on Dynamic Analysis (WODA '07)","volume":"17 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-05-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129766813","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
N. Mitchell, Gary Sevitsky, Palani Kumanan, E. Schonberg
{"title":"Data Structure Health","authors":"N. Mitchell, Gary Sevitsky, Palani Kumanan, E. Schonberg","doi":"10.1109/WODA.2007.1","DOIUrl":"https://doi.org/10.1109/WODA.2007.1","url":null,"abstract":"Applications often have large runtime memory requirements. In some cases, large memory footprint helps accomplish an important functional, performance, or engineering requirement. A large cache, for example, may ameliorate a pernicious performance problem. In general, however, finding a good balance between memory consumption and other requirements is quite challenging. To do so, the development team must distinguish effective from excessive use of memory: when is a data structure too big for its own good? We introduce health signatures to facilitate this balance. Using data from dozens of applications and benchmarks, we show that they provide concise and application-neutral summaries of footprint. We show how to use them to form value judgments about whether a design or implementation choice is good or bad. We demonstrate how to use health signatures to evaluate the asymptotic behavior of these choices, as input data size scales up. Finally, we show how being independent of any application eases comparison across disparate implementations.","PeriodicalId":235237,"journal":{"name":"Fifth International Workshop on Dynamic Analysis (WODA '07)","volume":"284 3","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-05-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"120986911","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Extending Dynamic Constraint Detection with Polymorphic Analysis","authors":"N. Kuzmina, Ruben Gamboa","doi":"10.1109/WODA.2007.3","DOIUrl":"https://doi.org/10.1109/WODA.2007.3","url":null,"abstract":"The general technique for dynamically detecting likely invariants, as implemented by Daikon, lacks specific object- oriented support for polymorphism. Daikon examines only the declared type of a variable which prohibits it from examination of the runtime variables in the presence of polymorphism. The approach presented in this paper extends the technique to consider the runtime type of a polymorphic variable, which may have different declared and runtime types. The runtime behavior of a polymorphic variable is captured by polymorphic constraints which have the form of an implication with the name of the runtime class in the antecedent. We demonstrate the improved accuracy of the dynamically detected specification on the Money example from the JUnit testing framework tutorial. Polymorphic constraints are shown to reveal the specification of the runtime behavior of the example.","PeriodicalId":235237,"journal":{"name":"Fifth International Workshop on Dynamic Analysis (WODA '07)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-05-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129376096","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Runtime Checking of UML Association-Related Constraints","authors":"Kun Wang, Wuwei Shen","doi":"10.1109/WODA.2007.8","DOIUrl":"https://doi.org/10.1109/WODA.2007.8","url":null,"abstract":"UML class models are important design artifacts used as blueprints of software systems to be built. Yet, implementations are often inconsistent with their models. Although many techniques have been proposed to tackle this problem, some dynamic aspects of a class model are still hard to be verified using existing techniques. In this paper, we present an approach to checking the UML association-related constraints during a program's execution. Our approach instruments event notification mechanism into Java bytecode and verifies the constraints imposed by design-level associations (including compositions), when certain events occur. The empirical studies show that our approach can help efficiently detect inconsistencies between a UML class model and its implementation.","PeriodicalId":235237,"journal":{"name":"Fifth International Workshop on Dynamic Analysis (WODA '07)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-05-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131267203","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Identifying Data Transfer Objects in EJB Applications","authors":"Alex Pantaleev, A. Rountev","doi":"10.1109/WODA.2007.6","DOIUrl":"https://doi.org/10.1109/WODA.2007.6","url":null,"abstract":"Data transfer object (DTO) is a design pattern that is commonly used in Enterprise Java applications. Identification of DTOs has a range of uses for program comprehension, optimization, and evolution. We propose a dynamic analysis for identifying DTOs in Enterprise Java applications. The analysis tracks the reads and writes of object fields, and maintains information about the application tier that initiates the field access. The lifecycle of a DTO is represented by a finite state automaton that captures the relevant run-time events and the location of the code that triggers these events. We implemented the proposed approach using the JVMTI infrastructure in Java 6, and performed a study on a real-world Enterprise Java application which is deployed for commercial use. Our results indicate that the dynamic analysis achieves high precision and has acceptable overhead.","PeriodicalId":235237,"journal":{"name":"Fifth International Workshop on Dynamic Analysis (WODA '07)","volume":"9 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-05-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131629802","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}