1 / 5
文档名称:

JVM 优点与缺点的深入分析.pdf

格式:pdf   页数:5
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

JVM 优点与缺点的深入分析.pdf

上传人:紫岑旖旎 2012/9/15 文件大小:0 KB

下载得到文件列表

JVM 优点与缺点的深入分析.pdf

文档介绍

文档介绍:IT-Homer 专栏
成功是优点的发挥,失败是缺点的积累! 不为失败找理由,只为成功找
方法……
JVM 优点与缺点的深入分析
分类: Java/JSP 2012-05-05 23:19 698人阅读评论(0) 收藏举报
Java 最初诞生的时候,它可以说是其他语言的进化版。不仅因为Java很简单,而且这一进化
的语言还是一个可以运行第三方硬件字节码的虚拟机。它还是垃圾收集站,从而令存储管理和内核
转储(core dump)不再是麻烦。当然还有它相当全面的类库。虽然它没有什么惊世的新性能,但
它把许多语言的优点基于一身。
Java本来是一个简单独一的语言,但是Sun在长期运营Java的过程中出现了很多错误,比如将
语言与runtime合用一个名字,从而使得用户在识别JVM语言项目如Jython、JRuby时难以从思想
上隔离Java。最主要的是这样对runtime很不公,因为Java Virtual Machine (JVM)有很多自己的
独特之处。
1、缺点
没有一种技术是完美的,JVM也不例外。如果你工作在一个没有Java语言配置的设备上,JVM
便无用武之地。JVM为其他语言提供了基础,但JVM最初不是为这个理念设计的。比如我们作为分
配对象来维护我们的堆栈时,通常我们会直接操作实时堆栈并添加我们维护所需的其他字段,除此
之外再没有控制堆栈的更好的方法。
还有,当我们创建一个Ruby Fixnum时也很麻烦,我们把这些值用一个Java对象包装。Ruby
的C implementation不过只是传递tagged ints,因为没有包装他们就不会符合各种列表,所以
Java 基元(Java primitives)也不会切割它。
顺便说一下:JVM的启动时间也挺长。
那些为JVM编写高性能代码的开发者会觉得经常被JVM的black box特性所折磨,一旦你加载
你的字节码,你就觉得像是摇动老虎机的游戏手柄一样忐忑,不知道结果如何,black box就是意
味着不可知。
1
2、优点:
HotSpot(Java 虚拟机)
对于初学者来说,尽管Hotspot有些神秘,但是性能方面它确实很棒,因为动态建模
(dynamic profiling)是优良性能的捷径。HotSpot从运行应用中采样数据,从而可以优化代
码,进而得到良好性能。它相当于以模仿人工的方法进行优化。在程序运行的开始,Java代码仍然
解释执行,但HotSpot引擎开始进行采样(Profiling)。HotSpot引擎可以集中精力来对HotSpot
代码进行深度优化,从而使这部分代码的执行更加迅捷。因此当HotSpot优化时,它为优化设立了
一层保护来确保优化的基本原理有效;但当这层保护失效时,优化就会很慢。
这里是Hotspot在使用中的一个演示:
在图表中我们运行了一个Mandelbrot Generator很多次,然后测绘它每次生成的时间。你会
看到JRuby 。如果只看JRuby的起点,会
,但当Hotspot运行后时间曲线迅速下降。
这里有个有趣的始建波动发生在循环6那里:实际上那是因为