Send As SMS

2006-06-08

关于JVM

将 JVM 作为操作系统的一个标准组件是一个很不错的想法,但要达成这一个目标,除了一些商务上的事情(例如,能够在Windows中绑定JVM)之外,作为Java本身,也还需要做一些额外的发展:目前的Java应用还是一个庞大的应用,每一个JVM都是一个完全独立的、有较长的加载时间和内存开销的应用,内存动则以数M计,这个自然会大大的限制JVM的使用。我至今还怀念UNIX下的那些小的工作软件,启动又快,基本不占太多的内存,简直就像一个编程语言的函数一样,可以信手粘来,不必考虑效率、性能的问题,设想这样的一个ls、sed、bc等等如果采用Java来开发, 作为一个独立的进程使用,可能性就不大了。

IBM新近的JVM5.0在这方面似乎有一些改进:通过采用一个ShareMemory,将一些class的load过程(仅包括一些相对静态的)缓存起来,(不包括JIT编译),与SUN Hotspot的不同的是:IBM JVM是通过修改URLClassLoader来完成的,不需要太多的JVM参与(这一点其实很有意思),因此,也不局限于对rt.jar的缓存,CLASSPATH下的也是可以缓存的。按照IBM的测试数据,这样处理以后,不仅仅Load时间有显著的降低,而且,在内存开销上也能够非常明显的节约。但从理论上而言,这个不同的JVM在重用上还是很初步的,应该来说,还有非常巨大的空间。

Sun的MVM这个概念也有很久的时间了,但具体而言,技术规范如何,原理如何,我还不得而知。