论文部分内容阅读
KVM是J2ME的核心部件,是一个简化的java虚拟机,广泛应用于各种资源受限的设备中。但KVM在应用中也存在一些问题,特别是由于资源受限,导致KVM的性能存在问题,难以支持复杂且实时性要求较高的应用。因此,对KVM的性能进行改进很有必要。
本文针对目前KVM性能改进技术的热点和难点问题,从KVM的体系结构入手,分析了KVM的类加载机制和解释器工作原理。重点研究了固有KVM垃圾收集算法的缺陷,研究了利用KNI本地调用来提高性能,分析了KVM中多线程的实现存在的缺点。对基于Linux平台的KVM做了如下三方面性能改进:1提出分代式垃圾收集(generational garbage collection)改进KVM垃圾收集。2利用KNI技术调用本地方法计时,改进了定时器。3提出LWP轻量级进程模式改进原有基于用户级的多线程。实验表明,改进后KVM性能提高10%以上。
论文创新意义主要有:
l提出并实现分代式垃圾收集(generational garbage collection)改进KVM垃圾收集:本文提出分代思想对于对象作了区分,根据对象的生命周期采取不同的策略,不同时收集所有的世代,能够更好的提供垃圾回收的时间性能,使垃圾收集暂停时间更短。
L提出LWP轻量级进程模式来实现多线程,它结合了用户级线程实现(green thread implementation)和本地线程实现(native thread implementation)的优点,避免原有用户级线程并发性差,易被阻塞的缺点。使KVM多线程具备更好的并发性。