Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/1294325.1294355acmconferencesArticle/Chapter ViewAbstractPublication PagespppjConference Proceedingsconference-collections
Article

Redundant boxing elimination by a dynamic compiler for Java

Published: 05 September 2007 Publication History

Abstract

Auto-boxing improves code readability by eliminating the need for explicit boxing code, but it does not improve performance, because it does not eliminate boxing code but inserts the code implicitly. Current auto-boxing implementations try to improve performance by caching some of the boxed values in order to avoid wrapper class instance allocation on each boxing operation. Such an implementation, however, sometimes suffers greater performance degradation because it prevents traditional optimizations, such as redundant instance allocation elimination. This paper presents a new optimizing technique that eliminates the boxing code inserted by auto-boxing if the code is found redundant. Estimation using the SPECjbb2005 benchmark showed that this optimization improved performance by 3.6%.

References

[1]
R. A. Brooks, R. P. Gabriel, and G. L. Steele Jr. An optimizing compiler for lexically scoped LISP. In Proceedings of the 1982 SIGPLAN Symposium on Compiler Construction, pages 261--275. ACM, June 1982.
[2]
B. Calder and D. Grunwald. Reducing indirect function call overhead in C++ programs. In Proceedings of the 21st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 397--408. ACM, January 1994.
[3]
M. Cierniak, G.-Y. Lueh, and J. M. Stichnoth. Practicing JUDO: Java under dynamic optimizations. In Proceedings of the ACM SIGPLAN 2000 Conference on Programming Language Design and Implementation, pages 13--26. ACM, June 2000.
[4]
U. Hölzle, C. Chambers, and D. Ungar. Debugging optimized code with dynamic deoptimization. In Proceedings of the ACM SIGPLAN 1992 Conference on Programming Language Design and Implementation, pages 32--43. ACM, June 1992.
[5]
K. Ishizaki, M. Takeuchi, K. Kawachiya, T. Suganuma, O. Gohda, T. Inagaki, A. Koseki, K. Ogata, M. Kawahito, T. Yasue, T. Ogasawara, T. Onodera, H. Komatsu, and T. Nakatani. Effectiveness of cross-platform optimizations for a Java just-in-time compiler. In Proceedings of the 18th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Language and Applications, pages 187--204. ACM, October 2003.
[6]
T. Kotzmann and H. Mössenböck. Escape analysis in the context of dynamic compilation and deoptimization. In Proceedings of the 1st ACM/USENIX International Conference on Virtual Execution Environments, pages 111--120. USENIX, June 2005.
[7]
X. Leroy. Unboxed objects and polymorphic typing. In Proceedings of the 19th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 177--188. ACM, January 1992.
[8]
R. Morrison, A. Dearle, R. C. H. Connor, and A. L. Brown. An ad hoc approach to the implementation of polymorphism. ACM Transactions on Programming Language and Systems, 13(3):342--371, July 1991.
[9]
T. Ogasawara, H. Komatsu, and T. Nakatani. Edo: Exception-directed optimization in Java. ACM Transactions on Programming Language and Systems, 28(1):70--105, January 2006.
[10]
M. Paleczny, C. Vick, and C. Click. The Java HotSpot server compiler. In Proceedings of Java Virtual Machine Research and Technology Symposium, pages 1--12. USENIX, June 2001.
[11]
J. Peterson. Untagged data in tagged environments: Choosing optimal representations at compile time. In Proceedings of the Fourth International Conference on Functional Programming Language and Computer Architecture, pages 89--99. ACM, September 1989.
[12]
S. L. Peyton Jones and J. Launchbury. Unboxed values as first class citizens in a non-strict functional language. In Proceedings of the fifth ACM Conference on Functional Programming Language and Computer Architecture, pages 636--666. ACM, August 1991.
[13]
Standard Performance Evaluation Corporation. SPEC jvm98 benchmarks. In http://www.spec.org/osg/jvm98/, 1998.
[14]
Standard Performance Evaluation Corporation. SPEC jbb2005. In http://www.spec.org/jbb2005/, 2005.
[15]
G. L. Steele Jr. Fast arithmetic in MacLISP. In Proceedings of the 1977 MACSYMA User's Conference, pages 215--224. NASA, May 1977.
[16]
T. Suganuma, T. Yasue, and T. Nakatani. A region-based compilation technique for dynamic compilers. ACM Transactions on Programming Languages and Systems, 28(1):134--174, January 2006.
[17]
P. J. Thiemann. Unboxed values and polymorphic typing revisited. In Proceedings of the Seventh International Conference on Functional Programming Language and Computer Architecture, pages 24--35. ACM, June 1995.

Cited By

View all
  • (2022)Flexible semi-automatic support for type migration of primitives for C/C++ programs2022 IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER)10.1109/SANER53432.2022.00106(878-889)Online publication date: Mar-2022
  • (2022)Practical heuristics to improve precision for erroneous function argument swapping detection in C and C++Journal of Systems and Software10.1016/j.jss.2021.111048181:COnline publication date: 22-Apr-2022
  • (2020)The Role of Implicit Conversions in Erroneous Function Argument Swapping in C++2020 IEEE 20th International Working Conference on Source Code Analysis and Manipulation (SCAM)10.1109/SCAM51674.2020.00028(203-214)Online publication date: Sep-2020
  • Show More Cited By

Index Terms

  1. Redundant boxing elimination by a dynamic compiler for Java

    Recommendations

    Comments

    Please enable JavaScript to view thecomments powered by Disqus.

    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. Java
    2. auto-boxing
    3. optimization

    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)6
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 20 Nov 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2022)Flexible semi-automatic support for type migration of primitives for C/C++ programs2022 IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER)10.1109/SANER53432.2022.00106(878-889)Online publication date: Mar-2022
    • (2022)Practical heuristics to improve precision for erroneous function argument swapping detection in C and C++Journal of Systems and Software10.1016/j.jss.2021.111048181:COnline publication date: 22-Apr-2022
    • (2020)The Role of Implicit Conversions in Erroneous Function Argument Swapping in C++2020 IEEE 20th International Working Conference on Source Code Analysis and Manipulation (SCAM)10.1109/SCAM51674.2020.00028(203-214)Online publication date: Sep-2020
    • (2013)One VM to rule them allProceedings of the 2013 ACM international symposium on New ideas, new paradigms, and reflections on programming & software10.1145/2509578.2509581(187-204)Online publication date: 29-Oct-2013
    • (2011)Da capo con scalaACM SIGPLAN Notices10.1145/2076021.204811846:10(657-676)Online publication date: 22-Oct-2011
    • (2011)Da capo con scalaProceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications10.1145/2048066.2048118(657-676)Online publication date: 22-Oct-2011

    View Options

    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