Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/1294325.1294344acmconferencesArticle/Chapter ViewAbstractPublication PagespppjConference Proceedingsconference-collections
Article

Advanced Java bytecode instrumentation

Published: 05 September 2007 Publication History

Abstract

Bytecode instrumentation is a valuable technique for transparently enhancing virtual execution environments for purposes such as monitoring or profiling. Current approaches to bytecode instrumentation either exclude some methods from instrumentation, severely restrict the ways certain methods may be instrumented, or require the use of native code. In this paper we compare different approaches to bytecode instrumentation in Java and come up with a novel instrumentation framework that goes beyond the aforementioned limitations. We evaluate our approach with an instrumentation for profiling which generates calling context trees of various platform-independent dynamic metrics.

References

[1]
G. Ammons, T. Ball, and J. R. Larus. Exploiting hardware performance counters with flow and context sensitive profiling. In PLDI '97: Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation, pages 85--96. ACM Press, 1997.
[2]
W. Binder. A portable and customizable profiling framework for Java based on bytecode instruction counting. In Third Asian Symposium on Programming Languages and Systems (APLAS 2005), volume 3780 of Lecture Notes in Computer Science, pages 178--194, Tsukuba, Japan, Nov. 2005. Springer Verlag.
[3]
W. Binder. Portable and accurate sampling profiling for Java. Software: Practice and Experience, 36(6):615--650, 2006.
[4]
W. Binder and J. Hulaas. A portable CPU-management framework for Java. IEEE Internet Computing, 8(5):74--83, Sep./Oct. 2004.
[5]
W. Binder and J. Hulaas. Flexible and efficient measurement of dynamic bytecode metrics. In Fifth International Conference on Generative Programming and Component Engineering (GPCE-2006), Portland, Oregon, USA, Oct. 2006.
[6]
W. Binder, J. Hulaas, and P. Moret. A quantitative evaluation of the contribution of native code to Java workloads. In 2006 IEEE International Symposium on Workload Characterization (IISWC-2006), San Jose, CA, USA, Oct. 2006.
[7]
S. Chiba. Load-time structural reflection in Java. In Proceedings of the 14th European Conference on Object-Oriented Programming (ECOOP'2000), volume 1850 of Lecture Notes in Computer Science, pages 313--336. Springer Verlag, Cannes, France, June 2000.
[8]
G. Cohen, J. Chase, and D. Kaminsky. Automatic program transformation with JOIE. In 1998 USENIX Annual Technical Symposium, pages 167--178, 1998.
[9]
M. Dahm. Byte code engineering. In Java-Information-Tage 1999 (JIT'99), Sept. 1999. http://jakarta.apache.org/bcel/.
[10]
J. Gosling, B. Joy, G. L. Steele, and G. Bracha. The Java Language Specification, Third Edition. The Java Series. Addison-Wesley, 2005.
[11]
NetBeans. The NetBeans Profiler Project. Web pages at http://profiler.netbeans.org/.
[12]
ObjectWeb. ASM. Web pages at http://asm.objectweb.org/.
[13]
Sun Microsystems, Inc. Java Native Interface (JNI). Web pages at http://java.sun.com/j2se/1.5.0/docs/guide/jni/.
[14]
Sun Microsystems, Inc. Java Virtual Machine Profiler Interface (JVMPI). Web pages at http://java.sun.com/j2se/1.4.2/docs/guide/jvmpi/.
[15]
Sun Microsystems, Inc. JVM Tool Interface (JVMTI) version 1.1. Web pages at http://java.sun.com/javase/6/docs/technotes/guides/jvmti/index.html.
[16]
E. Tanter, M. Ségura-Devillechaise, J. Noyé, and J. Piquer. Altering Java semantics via bytecode manipulation. In Proceedings of the ACM SIGPLAN/SIGSOFT Conference on Generative Programming and Component Engineering (GPCE 2002), USA, volume 2487 of LNCS, pages 283--298, Oct. 2002.
[17]
The Standard Performance Evaluation Corporation. SPEC JBB2005 (Java Business Benchmark). Web pages at http://www.spec.org/osg/jbb2005/.
[18]
The Standard Performance Evaluation Corporation. SPEC JVM98 Benchmarks. Web pages at http://www.spec.org/osg/jvm98/.

Cited By

View all
  • (2024)AbstractTrace: The Use of Execution Traces to Cluster, Classify, Prioritize, and Optimize a Bloated Test SuiteApplied Sciences10.3390/app14231116814:23(11168)Online publication date: 29-Nov-2024
  • (2023)Coverage-Based Debloating for Java BytecodeACM Transactions on Software Engineering and Methodology10.1145/354694832:2(1-34)Online publication date: 4-Apr-2023
  • (2023)Large‐scale characterization of Java streamsSoftware: Practice and Experience10.1002/spe.321353:9(1763-1792)Online publication date: 5-Jun-2023
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
PPPJ '07: Proceedings of the 5th international symposium on Principles and practice of programming in Java
September 2007
260 pages
ISBN:9781595936721
DOI:10.1145/1294325
  • General Chair:
  • Vasco Amaral
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 05 September 2007

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. JVM
  2. Java
  3. dynamic bytecode instrumentation
  4. dynamic metrics
  5. profiling
  6. program transformations

Qualifiers

  • Article

Conference

PPPJ07
Sponsor:

Acceptance Rates

Overall Acceptance Rate 29 of 58 submissions, 50%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)34
  • Downloads (Last 6 weeks)8
Reflects downloads up to 19 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2024)AbstractTrace: The Use of Execution Traces to Cluster, Classify, Prioritize, and Optimize a Bloated Test SuiteApplied Sciences10.3390/app14231116814:23(11168)Online publication date: 29-Nov-2024
  • (2023)Coverage-Based Debloating for Java BytecodeACM Transactions on Software Engineering and Methodology10.1145/354694832:2(1-34)Online publication date: 4-Apr-2023
  • (2023)Large‐scale characterization of Java streamsSoftware: Practice and Experience10.1002/spe.321353:9(1763-1792)Online publication date: 5-Jun-2023
  • (2022)Characterizing Java Streams in the Wild2022 26th International Conference on Engineering of Complex Computer Systems (ICECCS)10.1109/ICECCS54210.2022.00025(143-152)Online publication date: Mar-2022
  • (2021)Automated driver management for selenium WebDriverEmpirical Software Engineering10.1007/s10664-021-09975-326:5Online publication date: 23-Jul-2021
  • (2020)Research on Dynamic Detection of Java Dependency Conflict2020 IEEE International Conference on Advances in Electrical Engineering and Computer Applications( AEECA)10.1109/AEECA49918.2020.9213605(711-714)Online publication date: Aug-2020
  • (2020)Text Web Templates Considered HarmfulWeb Information Systems and Technologies10.1007/978-3-030-61750-9_4(69-95)Online publication date: 3-Nov-2020
  • (2019)Analysis and Optimization of Task Granularity on the Java Virtual MachineACM Transactions on Programming Languages and Systems10.1145/333849741:3(1-47)Online publication date: 16-Jul-2019
  • (2019)ScalayzerProceedings of the 4th ACM/IEEE Symposium on Edge Computing10.1145/3318216.3363336(371-376)Online publication date: 7-Nov-2019
  • (2019)Detecting Input Sanitization Errors in Scala2019 Seventh International Symposium on Computing and Networking Workshops (CANDARW)10.1109/CANDARW.2019.00062(313-319)Online publication date: Nov-2019
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media