共查询到20条相似文献,搜索用时 15 毫秒
1.
2.
异常处理机制是程序设计语言的重要特征之一。讨论了对Java异常处理进行实时性改造的可行性和具体方法,并且在Linux平台上,实现了对开源Java虚拟机SableVM中异常处理机制的实时性改造。实验结果表明改进后的虚拟机在异常捕获时间趋于线性的同时,异常表查询效率也得到了提高。 相似文献
3.
4.
5.
Java栈是Java虚拟机中运行时数据区的主要组成部分。大部分虚拟机指令的操作都与Java栈中的框架相关联。该文描述了Java栈在Java虚拟机运行中所起的作用,自行设计了一种Java栈的数据结构,提出了一些具有代表性的字节码指令的实现方法。同时总结了Java栈对虚拟机运行效率的影响。 相似文献
6.
7.
8.
9.
10.
This paper describes the design, implementation, and experimental evaluation of a modular and extensible Java? Virtual Machine (JVM) infrastructure, called Jupiter. The infrastructure is intended to serve as a vehicle for our research on scalable JVM architectures for a cluster of PC workstations, with support for shared memory in software. Jupiter is constructed, using a building block architecture, out of many modules with small, simple interfaces. This flexible structure, similar to UNIX® shells that build complex command pipelines out of discrete programs, allows the rapid prototyping of our research ideas by confining changes in JVM design to a small number of modules. In spite of this flexibility, Jupiter delivers good performance. Experimental evaluation of the current implementation of Jupiter using the SPECjvm98 and the EPCC Java Grande single‐threaded and multithreaded benchmarks reflects competitive performance. Jupiter is on average about 2.5 times faster than Kaffe and about 2 times slower than the Sun Microsystems JDK (interpreter versions only). By providing a flexible JVM infrastructure that delivers competitive performance, we believe we have developed a framework that supports further research into JVM scalability. Copyright © 2003 John Wiley & Sons, Ltd. 相似文献
11.
The Java Virtual Machine (JVM) was designed as the target for Java compilers, but there is no reason why it cannot be used as the target for other languages. We describe the implementation of a compiler which translates a lazy, weakly‐typed functional program into Java class files. We compare the performance of our compiler to the only other known compiler from a lazy functional language to the JVM. The results are broadly similar, suggesting that to get a significant performance speed‐up using this compilation paradigm will come only from increasing the performance of the JVM, rather than enhancing the compiler itself. Copyright © 1999 John Wiley & Sons, Ltd. 相似文献
12.
Java反射是提高软件系统灵活性的重要技术,它是Java被视为动态语言的一个关键特性。虽然CLDC规范并不支持反射,但是在基于Java技术的嵌入式领域,反射仍有其应用需求。Sun公司根据CLDC规范发布了一套嵌入式Java技术的参考实现,其虚拟机被称作KVM。通过分析KVM的相关数据结构和机制,详细描述了反射机制的设计原理,并提出了一种在KVM中扩展反射功能的实现方案,经过测试证明该方案是可行的。 相似文献
13.
Java语言的一个显著特点是它通过虚拟机和垃圾回收机制管理着大部分的内存事务,但是在Java程序中还是可能存在内存泄漏问题。文中首先对Java内存泄漏做一个简要的定义,接着围绕一个实例详细地介绍如何用工具检测Java内存泄漏,最后列举了一些典型的泄漏,以便读者在Java程序开发中尽量避免类似的内存泄漏。 相似文献
14.
The Java Virtual Machine executes bytecode programs that may have been sent from other, possibly untrusted, locations on the
network. Since the transmitted code may be written by a malicious party or corrupted during network transmission, the Java
Virtual Machine contains a bytecode verifier to check the code for type errors before it is run. As illustrated by reported
attacks on Java run-time systems, the verifier is essential for system security. However, no formal specification of the bytecode
verifier exists in the Java Virtual Machine Specification published by Sun. In this paper, we develop such a specification
in the form of a type system for a subset of the bytecode language. The subset includes classes, interfaces, constructors,
methods, exceptions, and bytecode subroutines. We also present a type checking algorithm and prototype bytecode verifier implementation,
and we conclude by discussing other applications of this work. For example, we show how to extend our formal system to check
other program properties, such as the correct use of object locks.
This revised version was published online in August 2006 with corrections to the Cover Date. 相似文献
15.
首先分析了Sun公司的嵌入式Java虚拟机KVM性能低效的原因,在此基础上引入两种Java虚拟机性能加速技术:JIT和Native线程。通过建立MVM模型,将这两种加速技术融合到了Java虚拟机中,并详细介绍了实现这两种加速技术的关键数据结构和算法。实验结果表明Java虚拟机的性能获得明显的提高。 相似文献
16.
The cluster virtual machine (VM) for Java provides a single system image of a traditional Java Virtual Machine (JVM) while executing in a distributed fashion on the nodes of a cluster. The cluster VM for Java virtualizes the cluster, supporting any pure Java application without requiring that application be tailored specifically for it. The aim of our cluster VM is to obtain improved scalability for a class of Java Server Applications by distributing the application's work among the cluster's computing resources. The implementation of the cluster VM for Java is based on a novel object model which distinguishes between an application's view of an object (e.g. every object is a unique data structure) and its implementation (e.g. objects may have consistent replications on different nodes). This enables us to exploit knowledge on the use of individual objects to improve performance (e.g. using object replications to increase locality of access to objects). We have already completed a prototype that runs pure Java applications on a cluster of NT workstations connected by a Myrinet fast switch. The prototype provides a single system image to applications, distributing the application's threads and objects over the cluster. We used the cluster VM to run, without change, a real Java Server Application containing over 10 Kloc 1 Kloc means Kilo lines of code—used to describe the size of applications in terms of source lines count. for the source code and achieved high scalability for it on a cluster. We also achieved linear speedup for another application with a large number of independent threads. This paper discusses the architecture and implementation of the cluster VM. It focuses on achieving a single system image for a traditional JVM on a cluster while describing, in short, how we aim to obtain scalability. Copyright © 2001 John Wiley & Sons, Ltd. 相似文献
17.
为了对Java虚拟机(JVM)进行测试,开发人员通常需要手工设计或利用测试生成工具生成复杂的测试程序,从而检测JVM中潜在的缺陷。然而,复杂的测试程序给开发人员定位及修复缺陷带来了极高的成本。测试程序约简技术旨在保障测试程序缺陷检测能力的同时,尽可能的删减测试程序中与缺陷检测无关的代码。现有研究工作基于Delta调试在C程序和XML输入上可以取得较好的约简效果,但是在JVM测试场景中,具有复杂语法和语义依赖关系的Java测试程序约减仍存在粒度较粗、约简效果较差的问题,导致约简后的程序理解成本依然很高。因此,针对具有复杂程序依赖关系的Java测试程序,本文提出一种基于程序约束的细粒度测试程序约简方法JavaPruner。首先在语句块级别设计细粒度的代码度量方法,随后在Delta调试技术上引入语句块之间的依赖约束关系来对测试程序进行约简。以Java字节码测试程序为实验对象,通过从现有的针对JVM测试的测试程序生成工具中筛选出具有复杂依赖关系的50个测试程序作为基准数据集,并在这些数据集上验证JavaPruner的有效性。实验结果表明,JavaPruner可以有效删减Java字节码测试程序中的冗余代码。与现有方法相比,在所有基准数据集上约减能力平均可提升37.7%。同时,JavaPruner可以在保障程序有效性及缺陷检测能力的同时将Java字节码测试程序最大约简至其原有大小的1.09% ,有效降低了测试程序的分析和理解成本。 相似文献
18.
The accurate measurement of the execution time of Java bytecode is one factor that is important in order to estimate the total execution time of a Java application running on a Java Virtual Machine. In this paper we document the difficulties and solutions for the accurate timing of Java bytecode. We also identify trends across the execution times recorded for all imperative Java bytecodes. These trends would suggest that knowing the execution times of a small subset of the Java bytecode instructions would be sufficient to model the execution times of the remainder. We first review a statistical approach for achieving high precision timing results for Java bytecode using low precision timers and then present a more suitable technique using homogeneous bytecode sequences for recording such information. We finally compare instruction execution times acquired using this platform independent technique against execution times recorded using the read time stamp counter assembly instruction. In particular our results show the existence of a strong linear correlation between both techniques. 相似文献
19.