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

skip to main content
10.1145/1411732.1411743acmconferencesArticle/Chapter ViewAbstractPublication PagespppjConference Proceedingsconference-collections
research-article

A lazy developer approach: building a JVM with third party software

Published: 09 September 2008 Publication History

Abstract

The development of a complete Java Virtual Machine (JVM) implementation is a tedious process which involves knowledge in different areas: garbage collection, just in time compilation, interpretation, file parsing, data structures, etc. The result is that developing its own virtual machine requires a considerable amount of man/year. In this paper we show that one can implement a JVM with third party software and with performance comparable to industrial and top open-source JVMs on scientific applications. Our proof-of-concept implementation uses existing versions of a garbage collector, a just in time compiler, and the base library, and is robust enough to execute complex Java applications such as the OSGi Felix implementation and the Tomcat servlet container.

References

[1]
Apache felix. http://felix.apache.org/site/index.html.
[2]
Apache Harmony. harmony.apache.org.
[3]
BEA JRockit. www.bea.com.
[4]
Cacao JVM. www.cacaojvm.org.
[5]
DotGNU portable.NET. dotgnu.org/pnet.html.
[6]
The GNU Classpath Project. www.gnu.org/software/classpath/classpath.html.
[7]
IBM J9. www.ibm.com/developerworks/java/jdk.
[8]
IKVM.Net. www.ikvm.net.
[9]
Jakarta tomcat. http://jakarta.apache.org/tomcat/.
[10]
JamVM. jamvm.sourceforge.net.
[11]
Kaffe JVM. www.kaffe.org.
[12]
N3: N3 is Not .NET. llvm.org.
[13]
Sable VM. www.sablevm.org.
[14]
Sun OpenJDK. openjdk.java.net.
[15]
The GNU Compiler Collection. http://gcc.gnu.org/.
[16]
The GNU Compiler for the Java Programming Language. http://gcc.gnu.org/java.
[17]
The Jikes Research Virtual Machine. http://www-124.ibm.com/developerworks/oss/jikesrvm.
[18]
The Mono Project. www.mono-project.org.
[19]
The SPEC JVM98 Benchmark. http://www.spec.org/osg/jvm98/.
[20]
B. Alpern, A. Cocchi, S. Fink, and D. Grove. Efficient Implementation of Java Interfaces: Invokeinterface Considered Harmless. In Proceedings of the Object Oriented Programming, Systems, Languages, and Applications Conference, pages 108--124, New York, NY, USA, 2001. ACM.
[21]
D. Bacon, R. Konuru, C. Murthy, and M. Serrano. Thin Locks: Featherweight Synchronization for Java. In Proceedings of the Programming Language Design and Implementation Conference, pages 258--268, Montreal, Canada, 1998.
[22]
H. Boehm, A. Demers, and S. Shenker. Mostly Parallel Garbage Collection. In Proceedings of the Programming Language Design and Implementation Conference, pages 157--164, Toronto, Canada, June 1991.
[23]
E. P. C. Center. Java grande forum benchmark suiteversion 2.0. http://www.epcc.ed.ac.uk/javagrande/, 2003.
[24]
R. Dimpsey, R. Arora, and K. Kuiper. Java Server Performance: a Case Study of Building Efficient, Scalable JVMs. IBM Systems Journal, 39(1):151--174, 2000.
[25]
ECMA International. Common Language Infrastructure (CLI), 4th Edition. Technical Report ECMA-335.
[26]
N. Geoffray, G. Thomas, C. Cleément, and B. Folliot. Towards a new Isolation Abstraction for OSGi. In Proceedings of the First Workshop on Isolation and Integration in Embedded Systems (IIES 2008), pages 41--45, Glasgow, Scotland, UK, April 2008.
[27]
J. Gosling, B. Joy, G. Steele, and G. Bracha. The Java Language Specification Second Edition. Addison-Wesley, Boston, USA, 2000.
[28]
Java Community Process. JSR-121: Application Isolation API Specification. http://jcp.org/jsr/detail/121.jsp. by Sun Microsystem.
[29]
C. Lattner and V. Adve. LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation. In Proceedings of the International Symposium on Code Generation and Optimization, pages 75--86, Palo Alto, USA, March 2004. IEEE Computer Society.
[30]
T. Suganuma, T. Yasue, M. Kawahito, H. Komatsu, and T. Nakatani. A Dynamic Optimization Framework for a Java Just-in-time Compiler. SIGPLAN Not., 36(11):180--195, 2001.
[31]
G. Thomas, N. Geoffray, C. Clément, and B. Folliot. Designing Highly Flexible Virtual Machines: the JnJVM Experience. In Software: Practice and Experience. John Wiley & Sons, Ltd., 2008.

Cited By

View all
  • (2018)Do the dependency conflicts in my project matter?Proceedings of the 2018 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3236024.3236056(319-330)Online publication date: 26-Oct-2018
  • (2016)JFORTES: Java Formal Unit TESt Generation2016 VI Brazilian Symposium on Computing Systems Engineering (SBESC)10.1109/SBESC.2016.012(16-23)Online publication date: Nov-2016
  • (2012)A hybrid just-in-time compiler for androidProceedings of the 2012 international conference on Compilers, architectures and synthesis for embedded systems10.1145/2380403.2380418(41-50)Online publication date: 7-Oct-2012
  • Show More Cited By

Index Terms

  1. A lazy developer approach: building a JVM with third party software

    Recommendations

    Comments

    Please enable JavaScript to view thecomments powered by Disqus.

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    PPPJ '08: Proceedings of the 6th international symposium on Principles and practice of programming in Java
    September 2008
    198 pages
    ISBN:9781605582238
    DOI:10.1145/1411732
    • Conference Chairs:
    • Luis Veiga,
    • 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: 09 September 2008

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. BoehmGC
    2. GNU classpath
    3. Java
    4. JnJVM
    5. LLVM

    Qualifiers

    • Research-article

    Conference

    PPPJ08
    Sponsor:

    Acceptance Rates

    Overall Acceptance Rate 29 of 58 submissions, 50%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)2
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 24 Nov 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2018)Do the dependency conflicts in my project matter?Proceedings of the 2018 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3236024.3236056(319-330)Online publication date: 26-Oct-2018
    • (2016)JFORTES: Java Formal Unit TESt Generation2016 VI Brazilian Symposium on Computing Systems Engineering (SBESC)10.1109/SBESC.2016.012(16-23)Online publication date: Nov-2016
    • (2012)A hybrid just-in-time compiler for androidProceedings of the 2012 international conference on Compilers, architectures and synthesis for embedded systems10.1145/2380403.2380418(41-50)Online publication date: 7-Oct-2012
    • (2010)VMKitACM SIGPLAN Notices10.1145/1837854.173600645:7(51-62)Online publication date: 17-Mar-2010
    • (2010)VMKitProceedings of the 6th ACM SIGPLAN/SIGOPS international conference on Virtual execution environments10.1145/1735997.1736006(51-62)Online publication date: 17-Mar-2010
    • (2010)The power-saving approach by critical section detections of multi-cores embedded systems2010 2nd International Conference on Mechanical and Electronics Engineering10.1109/ICMEE.2010.5558584(V1-117-V1-121)Online publication date: Aug-2010
    • (2009)Precise simulation of interrupts using a rollback mechanismProceedings of th 12th International Workshop on Software and Compilers for Embedded Systems10.1145/1543820.1543833(71-80)Online publication date: 23-Apr-2009
    • (2009)I-JVM: a Java Virtual Machine for component isolation in OSGi2009 IEEE/IFIP International Conference on Dependable Systems & Networks10.1109/DSN.2009.5270296(544-553)Online publication date: Jun-2009

    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