共查询到20条相似文献,搜索用时 0 毫秒
1.
Sunghyun Hong Jin‐Chul Kim Soo‐Mook Moon Jin Woo Shin Jaemok Lee Hyeong‐Seok Oh Hyung‐Kyu Choi 《Software》2009,39(3):259-278
Many embedded Java platforms execute two types of Java classes: those installed statically on the client device and those downloaded dynamically from service providers at run time. For achieving higher performance, the static Java classes can be compiled into machine code by ahead‐of‐time compiler (AOTC) in the server, and the translated machine code can be installed on the client device. Unfortunately, AOTC cannot be applicable to the dynamically downloaded classes. This paper proposes client‐AOTC (c‐AOTC), which performs AOTC on the client device using the just‐in‐time compiler (JITC) module installed on the device, obviating the JITC overhead and complementing the server‐AOTC. The machine code of a method translated by JITC is cached on a persistent memory of the device, and when the method is invoked again in a later run of the program, the machine code is loaded and executed directly without any translation overhead. A major issue in c‐AOTC is relocation because some of the address constants embedded in the cached machine code are not correct when the machine code is loaded and used in a different run; those addresses should be corrected before they are used. Constant pool resolution and inlining complicate the relocation problem, and we propose our solutions. The persistent memory overhead for saving the relocation information is also an issue, and we propose a technique to encode the relocation information and compress the machine code efficiently. We developed a c‐AOTC on Sun's CDC VM reference implementation, and our evaluation results indicate that c‐AOTC can improve the performance significantly, as much as an average of 12% for EEMBC and 4% for SpecJVM98, with a persistent memory overhead of 1% on average. Copyright © 2008 John Wiley & Sons, Ltd. 相似文献
2.
在嵌入式Java芯片中使用即时编译技术 总被引:1,自引:0,他引:1
Java虚拟机具有面向堆栈与面向对象的特点,不利于硬件有效支持字节码的直接执行,传统JIT也不适应嵌入式系统的应用环境,介绍了在自行设计的嵌入式Java芯片中使用JIT的技术途径,通过对Java虚拟机堆栈和复杂指令的支持,密切配合JIT软件,较好地解决了Java芯片设计中的问题。测试结果表明,相对于目前前界最好的picoJava-Ⅱ内核而言内核而言,JC401的编译后代码性能提高了1.2至1.9倍,在硬件复杂度、执行速度、内存开销等方面都有较大程度的改善,适合于嵌入式应用。 相似文献
3.
Java supports the monitor construct for language‐level synchronization in the context of multi‐threading. This paper introduces the lightweight monitor, an efficient user‐level monitor implementation. The lightweight monitor is useful for single‐threaded Java programs as well as for multi‐threaded Java programs with little lock contention. A 32‐bit lock is embedded in each object for efficient lock access while other monitor data structures are managed using a hash table. We highly optimized the lock manipulation code, which is translated and inlined by a just‐in‐time (JIT) compiler. In the most probable cases, only nine SPARC instructions are spent for lock acquisition and five instructions are spent for lock release. Our experimental results indicate that the lightweight monitor is faster than the monitor implementation in the SUN JDK 1.2 RC1 by up to 21 times in the absence of lock contention and by up to seven times in the presence of lock contention. Copyright © 2004 John Wiley & Sons, Ltd. 相似文献
4.
5.
Java异常处理机制研究 总被引:2,自引:0,他引:2
异常处理机制是程序设计语言的主要特征,它为开发稳定的软件系统提供了有力的支持.文章对Java语言的异常处理机制以及异常类的层次进行了详细介绍,提出了Java异常处理策略. 相似文献
6.
Java语言的异常处理设计原则 总被引:4,自引:0,他引:4
异常处理是Java语言的重要语言机制,正确地处理异常对程序的可靠性、健壮性是十分重要的。回顾了异常处理技术的概念和思想,对异常处理提出了一套实用的设计原则,并针对Java语言的具体环境,分类介绍了各种异常的常用处理方式。 相似文献
7.
异常处理机制是程序设计语言的重要特征之一,它为开发可靠性软件系统提供了强有力的支持,介绍了不同语言的异常处理机制,对Java语言的异常处理机制进行了详细论述,最后结合国产开放系统平台COSIX虚拟机异常处理的设计,深入探讨了在解释才及时编译执行两种不同的情况下,异常处理设计与实现的关键技术。 相似文献
8.
Wang Yongcheng 《计算机科学技术学报》1987,2(4):287-291
In addition to Chinese character I/O, one of the most important issues for Chinese informationprocessing is automatic extraction of words from textual data. Having discussed the characteristics ofChinese words and sentences, we proved in this paper that this problem cannot be thoroughly resolved.Then, various algorithms for extraction of words from Chinese sentences are reviewed. Finally, a newalgorithm is put forward, based on which a highly automatic Chinese information processing system hasbeen developed. 相似文献
9.
Early Java implementations relied on interpretation,leading to poor performance compared to compiled programs,Java just-in-time(JIT) compiler can compile Java programs at runtime,so it not only improves Java‘s performance prominently,but also preserves Java‘s portability.In this paper the design and implementing techniques of Java JIT complier based on Chinese open system are discussed in detail.To enhance the portability,a translating method which combines the static simulating method and macro expansion method is adopted.The optimization technique for JIT compiler is also discussed and a way to evaluate the hotspots in Java programs is presented.Experiments have been conducted to verify JIT compilation technique as an efficient way to accelerate Java. 相似文献
10.
从解释执行到及时编译的转变极大地提高了Java程序的运行速度.但是,现有的Java虚拟机还有待进一步的改进.提出了一种新的Java虚拟机编译与执行模型--混合并发模型HCCEM(hybrid concurrent compilation and execution model).该模型通过多线程控制方式将字节码的编译与执行过程相重叠,从而获取加速的效果.另外还给出了基于HCCEM的Java虚拟机JAFFE的设计方案,并就实现中的执行模式切换、异常处理以及层次线程等问题进行了讨论.实验结果表明,HCCEM能 相似文献
11.
Java的异常处理机制是其一大特色。该文在介绍Java语言的异常处理技术的基础上,提出了异常处理的设计原则,从而为Java的程序设计实现提供技术上的借鉴。 相似文献
12.
向模军 《电脑编程技巧与维护》2010,(8):119-119,129
异常处理是程序设计中必须重点考虑的问题。在深入剖析Java语言的异常处理机制基础上,对Java异常处理提出了指导原则,从而可以提高程序的安全性和健壮性。 相似文献
13.
一、概述近来,具有平台无关、面向对象等诸多特点的Java语言得到了迅速的发展,以即时编译技术(JIT)为代表的软件实现的Java虚拟机在桌面系统中日趋成熟,在运行速度、内存需求、实时性能等方面都有较大的提高,以网页中的Java小程序为主的Java应用大量涌现,具备了一定的应用基础。 相似文献
14.
一种嵌入式Java芯片内核--JC401 总被引:3,自引:0,他引:3
首先分析了目前Java的应用情况,指出嵌入式Java芯片具有很大的市场需求,然后结合嵌入式系统的特点简单分析了当前几种Java虚拟机实现技术的缺点,提出了在嵌入式Java芯片内核JC401中采用瘦型JIT的设计思想。通过对JIT的硬件支持和相关软件的配合,达到减少JIT运行时间和内存开销,获得高效的Java性能与较好的性能价格比的目标,然后具体介绍了JC401内核的总体结构与主要技术特点,进行了性能分析与评估,证明了设计思想的正确性,最后举例说明JC401具有很好的市场前景。 相似文献
15.
Java异常处理机制的研究 总被引:7,自引:0,他引:7
异常处理是Java语言的重要语言机制,正确、合理地处理异常对程序的可靠性、健壮性是十分重要的。在分析了异常处理技术的概念和思想后,对异常处理提出了指导原则,并针对检查型异常和非检查型异常的差异,探讨了对应的解决措施。 相似文献
16.
17.
逃逸分析(escape analysis)是一种可以有效减少Java程序中同步负载和内存堆分配压力的跨函数全局数据流分析算法.此前绝大多数逃逸分析的实现都基于一个所谓\"封闭世界(closed world)\"的前提:所有可能被执行的方法在做逃逸分析前都已经得知,并且,程序的实际运行不会改变它们之间的调用关系.但当真实的Java程序运行时,这样的假设并不成立.Java程序拥有的许多特性,例如动态类加载、调用本地函数以及反射程序调用等等,都将打破所谓\"封闭世界\"的约定.这样的真实运行环境被称为\"开放世界\".在开放世界中,实现逃逸分析将面临许多重要的问题,例如,能否正确、全面地捕捉动态载入的类和方法,并分析它们与原有程序的关系;逃逸分析算法的复杂性是否能够得以控制,以保证即时编译器的重新分析时间不会过长,等等.提出一个新的逃逸分析架构,它可以有效地处理上述开放世界所面临的问题.该分析架构将增量分析Java程序,动态捕获新载入和调用的类及方法,同时,在复杂性和精度之间进行权衡,正确、有效地降低程序的运行负载.该分析架构已经在Intel的开放式Java虚拟机系统ORP中实现,经过实际测试,可以有效地消除一些主要基准测试程... 相似文献
18.
高德龙 《数字社区&智能家居》2009,(11)
对Java程序设计中出现的异常处理技术进行了研究,对Java异常处理知识进行了必要的介绍和简单的分析,并总结了几种在Java程序设计中如何定义和使用异常类。 相似文献
19.
Regular expressions are a powerful tool for analyzing and manipulating text. Their theoretical background lies within automata theory and formal languages. The FIRE/J (fast implementation of regular expressions for Java) regular expression library is designed to provide maximum execution speed while remaining portable across different machine architectures. To achieve that, FIRE/J transforms each regular expression into a tailor‐made class file, which is compiled directly to Java virtual machine (JVM) bytecodes. The library is compatible with the POSIX standard. Copyright © 2007 John Wiley & Sons, Ltd. 相似文献
20.
Chien-Tsun Chen Author Vitae Yu Chin Cheng Author Vitae Chin-Yun Hsieh Author Vitae I-Lang Wu Author Vitae 《Journal of Systems and Software》2009,82(2):333-345
Exception handling design can improve robustness, which is an important quality attribute of software. However, exception handling design remains one of the less understood and considered parts in software development. In addition, like most software design problems, even if developers are requested to design with exception handling beforehand, it is very difficult to get the right design at the first shot. Therefore, improving exception handling design after software is constructed is necessary. This paper applies refactoring to incrementally improve exception handling design. We first establish four exception handling goals to stage the refactoring actions. Next, we introduce exception handling smells that hinder the achievement of the goals and propose exception handling refactorings to eliminate the smells. We suggest exception handling refactoring is best driven by bug fixing because it provides measurable quality improvement results that explicitly reveal the benefits of refactoring. We conduct a case study with the proposed refactorings on a real world banking application and provide a cost-effectiveness analysis. The result shows that our approach can effectively improve exception handling design, enhance software robustness, and save maintenance cost. Our approach simplifies the process of applying big exception handling refactoring by dividing the process into clearly defined intermediate milestones that are easily exercised and verified. The approach can be applied in general software development and in legacy system maintenance. 相似文献