Browsing by Autor "Yudi Zheng"
Now showing 1 - 6 of 6
- Results Per Page
- Sort Options
Item type: Item , A programming model and framework for comprehensive dynamic analysis on Android(2015) Haiyang Sun; Yudi Zheng; Lubomír Bulej; Alex Villazón; Zhengwei Qi; Petr Tůma; Walter BinderThe multi-process architecture of Android applications combined with the lack of suitable APIs make dynamic program analysis (DPA) on Android challenging and unduly difficult. Existing analysis tools and frameworks are tailored mainly to the needs of security-related analyses and are not flexible enough to support the development of generic DPA tools. In this paper we present a framework that, besides providing the fundamental support for the development of DPA tools for Android, enables development of cross-platform analyses that can be applied to applications targeting the Android and Java platforms. The framework provides a convenient high-level programming model, flexible instrumentation support, and strong isolation of the base program from the analysis. To boost developer productivity, the framework retains Java as the main development language, while seamless integration with the platform overcomes the recurring obstacles hindering development of DPA tools for Android. We evaluate the framework on two diverse case studies, demonstrating key concepts, the flexibility of the framework, and analysis portability.Item type: Item , DiSL(2012) Lukáš Marek; Alex Villazón; Yudi Zheng; Danilo Ansaloni; Walter Binder; Zhengwei QiMany dynamic analysis tools for programs written in managed languages such as Java rely on bytecode instrumentation. Tool development is often tedious because of the use of low-level bytecode manipulation libraries. While aspect-oriented programming (AOP) offers high-level abstractions to concisely express certain dynamic analyses, the join point model of mainstream AOP languages such as AspectJ is not well suited for many analysis tasks and the code generated by weavers in support of certain language features incurs high overhead. In this paper we introduce DiSL (domain-specific language for instrumentation), a new language especially designed for dynamic program analysis. DiSL offers an open join point model where any region of bytecodes can be a shadow, synthetic local variables for efficient data passing, efficient access to comprehensive static and dynamic context information, and weave-time execution of user-defined static analysis code. We demonstrate the benefits of DiSL with a case study, recasting an existing dynamic analysis tool originally implemented in AspectJ. We show that the DiSL version offers better code coverage, incurs significantly less overhead, and eases the integration of new analysis features that could not be expressed in AspectJ.Item type: Item , Renaissance(2019) Aleksandar Prokopec; Andrea Rosà; David Leopoldseder; Gilles Duboscq; Petr T ma; Martin Studener; Lubomír Bulej; Yudi Zheng; Alex Villazón; Doug SimonItem type: Item , Renaissance: a modern benchmark suite for parallel applications on the JVM(2019) Aleksandar Prokopec; Andrea Rosà; David Leopoldseder; Gilles Duboscq; Petr Tůma; Martin Studener; Lubomír Bulej; Yudi Zheng; Alex Villazón; Doug SimonThis paper describes Renaissance, a new benchmark suite that covers modern JVM concurrency and parallelism paradigms.Item type: Item , Renaissance: benchmarking suite for parallel applications on the JVM(2019) Aleksandar Prokopec; Andrea Rosà; David Leopoldseder; Gilles Duboscq; Petr Tůma; Martin Studener; Lubomír Bulej; Yudi Zheng; Alex Villazón; Doug SimonEstablished benchmark suites for the Java Virtual Machine (JVM), such as DaCapo, ScalaBench, and SPECjvm2008, lack workloads that take advantage of the parallel programming abstractions and concurrency primitives offered by the JVM and the Java Class Library. However, such workloads are fundamental for understanding the way in which modern applications and data-processing frameworks use the JVM's concurrency features, and for validating new just-in-time (JIT) compiler optimizations that enable more efficient execution of such workloads. We present Renaissance, a new benchmark suite composed of modern, real-world, concurrent, and object-oriented workloads that exercise various concurrency primitives of the JVM. We show that the use of concurrency primitives in these workloads reveals optimization opportunities that were not visible with the existing workloads. We use Renaissance to compare performance of two state-of-the-art, production-quality JIT compilers (HotSpot C2 and Graal), and show that the performance differences are more significant than on existing suites such as DaCapo and SPECjvm2008. We also use Renaissance to expose four new compiler optimizations, and we analyze the behavior of several existing ones. We use Renaissance to compare performance of two state-of-the-art, production-quality JIT compilers (HotSpot C2 and Graal), and show that the performance differences are more significant than on existing suites such as DaCapo and SPECjvm2008. We also use Renaissance to expose four new compiler optimizations, and we analyze the behavior of several existing ones.Item type: Item , Turbo DiSL: Partial Evaluation for High-Level Bytecode Instrumentation(Springer Science+Business Media, 2012) Yudi Zheng; Danilo Ansaloni; Lukáš Marek; Andreas Sewe; Walter Binder; Alex Villazón; Petr Tůma; Zhengwei Qi; Mira Mezini