欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

为什么Java虚拟机比Python虚拟机大那么多?

程序员文章站 2022-05-17 09:11:32
...
好吧..题主我不是学计算机的,只是装过JVM和PVM而已。。
java大小:为什么Java虚拟机比Python虚拟机大那么多?python大小:为什么Java虚拟机比Python虚拟机大那么多?=============
感谢好心人添加了截图
以及python安装包还包含了IDLE和一些标准库吧,所以解释器应该更小。
但是我也不知道PVM到底有多大。

回复内容:

Python的虚拟机是个单纯的解释器 java的在解释的同时会profile然后根据profile的结果对特定代码进行实时编译 功能多了大小自然多了 jvm有google,以前sun、oralce、ibm、以前bea,还又很多其他公司,加上国内算ali。这么多资源在参与研究和开发jvm,应该是python比不了的。 谢邀

Python虚拟机/解释器和Hotspot这些JVM比起来就是玩具。况且光是比虚拟机/解释器肯定没有多少差别,你说的多半是把运行库都算上的整个运行环境 库占很大 python到现在都二三十年了,比java还早。java从第一版到现在经过了无数的革新,python却还有GIL。一看就知道,一个是玩具,一个是能干活的,大小怎能一样。 因为 Java 代码比 Python 代码长很多嘛。 人生苦短,我用Python,我觉得挺好 回上边的,只能说,玩具简直太好玩了,工具难用的一笔
好了,玩笑结束,上边有人提到库移植性问题,怎么说呢, 首先python是个胶水语言,所以库也就是被胶水粘一块的代码块(很多是C写的然后包装,这也是pvm很慢,但Python感觉蛮快的原因吧)一般Linux就是一个so加一个.py包装一下,显然是不能直接跨平台,java本身就是为了跨平台做的,所以大部分库都是跑在JVM上,所以能直接跑.因为java的库也是解释执行的字节码,所以比较废内存,也感觉慢一点(毕竟有转换或者jit的过程)。而Python的模式是一堆native代码加一点脚本,只有脚本是需要解释的,虽然pvm慢很多,但几乎感觉不到这个速度劣势的存在。 讲个笑话:Python 3. java虚拟机能跑java1 2 3 4 5 6 7 8的代码,python3能跑2的代码吗?