[go: up one dir, main page]

skip to main content
10.1145/1173706.1173733acmconferencesArticle/Chapter ViewAbstractPublication PagesgpceConference Proceedingsconference-collections
Article

Flexible and efficient measurement of dynamic bytecode metrics

Published: 22 October 2006 Publication History

Abstract

Code instrumentation is finding more and more practical applications, but the required program transformations are often difficult to implement, due to the lack of dedicated, high-level tools. In this paper we present a novel instrumentation framework that supports the partial evaluation of compiled Java code transformation templates, with the goal of efficiently measuring chosen dynamic bytecode and control flow metrics. This framework, as well as the instrumentation code it generates, is implemented in pure Java and hence completely platform-independent. We show the benefits of our approach in several application areas, such as platform-independent resource management and profiling of software components.

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]
M. Arnold and B. G. Ryder. A framework for reducing the cost of instrumented code. In SIGPLAN Conference on Programming Language Design and Implementation, pages 168--179, 2001.]]
[3]
P. Avgustinov, A. S. Christensen, L. J. Hendren, S. Kuzins, J. Lhoták, O. Lhoták, O. de Moor, D. Sereni, G. Sittampalam, and J. Tibble. abc: An extensible AspectJ compiler. In AOSD '05: Proceedings of the 4th international conference on Aspect-oriented software development, pages 87--98, New York, NY, USA, 2005. ACM Press.]]
[4]
T. Ball and J. R. Larus. Optimally profiling and tracing programs. ACM Transactions on Programming Languages and Systems, 16(4):1319--1360, July 1994.]]
[5]
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.]]
[6]
W. Binder. Portable and accurate sampling profiling for Java. Software: Practice and Experience, 36(6):615--650, 2006.]]
[7]
W. Binder and J. Hulaas. A portable CPU-management framework for Java. IEEE Internet Computing, 8(5):74--83, Sep./Oct. 2004.]]
[8]
W. Binder, J. G. Hulaas, and A. Villazón. Portable resource control in Java. ACM SIG-PLAN Notices, 36(11):139--155, Nov. 2001. Proceedings of the 2001 ACM SIGPLAN Conference on Object Oriented Programming, Systems, Languages and Applications (OOPSLA'01).]]
[9]
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.]]
[10]
S. Chiba and K. Nakagawa. Josh: An open AspectJ-like language. In AOSD '04: Proceedings of the 3rd international conference on Aspect-oriented software development, pages 102--111, New York, NY, USA, 2004. ACM Press.]]
[11]
S. Chiba and M. Nishizawa. An easy-to-use toolkit for efficient Java bytecode translators. Lecture Notes in Computer Science, 2830:364--376, 2003.]]
[12]
J.-D. Choi, D. Grove, M. Hind, and V. Sarkar. Efficient and precise modeling of exceptions for the analysis of Java programs. In Proceedings of the ACM SIGPLAN--SIGSOFT Workshop on Program Analysis for Software Tools and Engineering, pages 21--31. ACM Press, 1999.]]
[13]
B. F. Cooper, H. B. Lee, and B. G. Zorn. ProfBuilder: A package for rapidly building Java execution profilers. Technical Report CU-CS-853-98, University of Colorado at Boulder, Department of Computer Science, Apr. 1998.]]
[14]
M. Dahm. Byte code engineering. In Java-Information-Tage 1999 (JIT'99), Sept. 1999. http://jakarta.apache.org/bcel/.]]
[15]
B. Dufour, K. Driesen, L. Hendren, and C. Verbrugge. Dynamic metrics for Java. ACM SIG-PLAN Notices, 38(11):149--168, Nov. 2003.]]
[16]
B. Dufour, L. Hendren, and C. Verbrugge. *J: A tool for dynamic analysis of Java programs. In OOPSLA '03: Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, pages 306--307, New York, NY, USA, 2003. ACM Press.]]
[17]
M. Hauswirth, P. F. Sweeney, A. Diwan, and M. Hind. Vertical profiling: Understanding the behavior of object-oriented applications. In OOPSLA '04: Proceedings of the 19th annual ACM SIGPLAN Conference on Object-oriented programming, systems, languages, and applications, pages 251--269. ACM Press, 2004.]]
[18]
J. Hulaas and W. Binder. Program transformations for portable CPU accounting and control in Java. In Proceedings of PEPM'04 (2004 ACM SIGPLAN Symposium on Partial Evaluation & Program Manipulation), pages 169--177, Verona, Italy, August 24--25 2004.]]
[19]
G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W. G. Griswold. An overview of AspectJ. In J. L. Knudsen, editor, Proceedings of the 15th European Conference on Object-Oriented Programming (ECOOP-2001), volume 2072 of Lecture Notes in Computer Science, pages 327--353, 2001.]]
[20]
S. Liang and D. Viswanathan. Comprehensive profiling support in the Java virtual machine. In Proceedings of the 5th USENIX Conference on Object-Oriented Technologies and Systems (COOTS-99), pages 229--240, Berkeley, CA, May 3--7 1999. USENIX Association.]]
[21]
T. Lindholm and F. Yellin. The Java Virtual Machine Specification. Addison-Wesley, Reading, MA, USA, second edition, 1999.]]
[22]
H. Masuhara and K. Kawauchi. Dataflow pointcut in aspect-oriented programming. In First Asian Symposium on Programming Languages and Systems (APLAS-2003), volume 2895 of Lecture Notes in Computer Science, pages 105--121. Springer, 2003.]]
[23]
N. Nystrom, M. R. Clarkson, and A. C. Myers. Polyglot: An extensible compiler framework for Java. In Compiler Construction: 12'th International Conference, CC 2003, volume 2622 of Lecture Notes in Computer Science, pages 138--152, New York, NY, Apr. 2003. Springer-Verlag.]]
[24]
ObjectWeb. ASM. Web pages at http://asm.objectweb.org/.]]
[25]
M. P. Papazoglou and D. Georgakopoulos. Introduction: Service-oriented computing. Communications of the ACM, 46(10):24--28, Oct. 2003.]]
[26]
K. Sakurai, H. Masuhara, N. Ubayashi, S. Matsuura, and S. Komiya. Association aspects. In AOSD '04: Proceedings of the 3rd international conference on Aspect-oriented software development, pages 16--25, New York, NY, USA, 2004. ACM Press.]]
[27]
A. Srivastava and A. Eustace. ATOM: A system for building customized program analysis tools. SIGPLAN Not., 39(4):528--539, 2004.]]
[28]
Sun Microsystems, Inc. Java Virtual Machine Profiler Interface (JVMPI). Web pages at http://java.sun.com/j2se/1.4.2/docs/guide/jvmpi/.]]
[29]
Sun Microsystems, Inc. JVM Tool Interface (JVMTI), Version 1.0. Web pages at http://java.sun.com/j2se/1.5.0/docs/guide/jvmti/.]]
[30]
P. F. Sweeney, M. Hauswirth, B. Cahoon, P. Cheng, A. Diwan, D. Grove, and M. Hind. Using hardware performance monitors to understand the behavior of Java applications. In Virtual Machine Research and Technology Symposium, pages 57--72, 2004.]]
[31]
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.]]
[32]
The Standard Performance Evaluation Corporation. SPEC JVM98 Benchmarks. Web pages at http://www.spec.org/osg/jvm98/.]]
[33]
J. D. Turner. A Dynamic Prediction and Monitoring Framework for Distributed Applications. Phd thesis, Department of Computer Science, University of Warwick, UK, May 2003.]]
[34]
R. Vallée-Rai, E. Gagnon, L. J. Hendren, P. Lam, P. Pominville, and V. Sundaresan. Optimizing Java bytecode using the Soot framework: Is it feasible? In Compiler Construction, 9th International Conference (CC 2000), pages 18--34, 2000.]]

Cited By

View all
  • (2012)Dynamic aspect-oriented programming in javaTransactions on Aspect-Oriented Software Development IX10.5555/2434958.2434962(92-122)Online publication date: 1-Jan-2012
  • (2012)Dynamic Aspect-Oriented Programming in Java: The HotWave ExperienceTransactions on Aspect-Oriented Software Development IX10.1007/978-3-642-35551-6_3(92-122)Online publication date: 2012
  • (2011)Flexible and efficient profiling with aspect-oriented programmingConcurrency and Computation: Practice and Experience10.1002/cpe.176023:15(1749-1773)Online publication date: 2-May-2011
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
GPCE '06: Proceedings of the 5th international conference on Generative programming and component engineering
October 2006
310 pages
ISBN:1595932372
DOI:10.1145/1173706
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: 22 October 2006

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. JVM
  2. Java
  3. aspect-oriented programming
  4. bytecode instrumentation
  5. component-based software engineering
  6. dynamic metrics
  7. partial evaluation
  8. profiling
  9. program transformations
  10. resource management

Qualifiers

  • Article

Conference

GPCE06
Sponsor:
GPCE06: Generative Programming and Component Engineering 2006
October 22 - 26, 2006
Oregon, Portland, USA

Acceptance Rates

Overall Acceptance Rate 56 of 180 submissions, 31%

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)1
  • Downloads (Last 6 weeks)0
Reflects downloads up to 10 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2012)Dynamic aspect-oriented programming in javaTransactions on Aspect-Oriented Software Development IX10.5555/2434958.2434962(92-122)Online publication date: 1-Jan-2012
  • (2012)Dynamic Aspect-Oriented Programming in Java: The HotWave ExperienceTransactions on Aspect-Oriented Software Development IX10.1007/978-3-642-35551-6_3(92-122)Online publication date: 2012
  • (2011)Flexible and efficient profiling with aspect-oriented programmingConcurrency and Computation: Practice and Experience10.1002/cpe.176023:15(1749-1773)Online publication date: 2-May-2011
  • (2010)Rapid development of extensible profilers for the Java virtual machine with aspect-oriented programmingProceedings of the first joint WOSP/SIPEW international conference on Performance engineering10.1145/1712605.1712616(57-62)Online publication date: 28-Jan-2010
  • (2010)Using Genetic Search for Reverse Engineering of Parametric Behavior Models for Performance PredictionIEEE Transactions on Software Engineering10.1109/TSE.2010.6936:6(865-877)Online publication date: 1-Nov-2010
  • (2009)HotWaveACM SIGPLAN Notices10.1145/1837852.162162245:2(95-98)Online publication date: 4-Oct-2009
  • (2009)Advanced runtime adaptation for JavaACM SIGPLAN Notices10.1145/1837852.162162145:2(85-94)Online publication date: 4-Oct-2009
  • (2009)HotWaveProceedings of the eighth international conference on Generative programming and component engineering10.1145/1621607.1621622(95-98)Online publication date: 4-Oct-2009
  • (2009)Advanced runtime adaptation for JavaProceedings of the eighth international conference on Generative programming and component engineering10.1145/1621607.1621621(85-94)Online publication date: 4-Oct-2009
  • (2008)Cache-aware cross-profiling for java processorsProceedings of the 2008 international conference on Compilers, architectures and synthesis for embedded systems10.1145/1450095.1450116(127-136)Online publication date: 19-Oct-2008
  • Show More Cited By

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media