当前位置 : 主页 > 网络安全 > 测试自动化 >

性能 – Jython和JRuby等JVM实现如何击败原生同行?

来源:互联网 收集:自由互联 发布时间:2021-06-22
我正在观看这个视频 here,其中Robert Nicholson讨论了P8,它是JVM上的PHP实现.在某些时候,他提到他们的目标是在未来的某个时候超越原生PHP的性能. 他提到了JRuby和Jython,它起初比他们的同类人
我正在观看这个视频 here,其中Robert Nicholson讨论了P8,它是JVM上的PHP实现.在某些时候,他提到他们的目标是在未来的某个时候超越原生PHP的性能.

他提到了JRuby和Jython,它起初比他们的同类人慢,但最终超过了他们. Quercus是JVM上的另一个PHP解释器,声称比mod_php更为4x faster,值得注意.

这是否意味着JVM比C慢的一般想法是错误的,或者原始C实现中是否存在缺陷?

Does that mean that the general idea that the JVM is slower than C is wrong, or are there >flaws in the original C implementations?

两者兼而有之

JVM已经存在了很长时间,并且在效率方面取得了重大进展.垃圾收集,jitting,缓存和其他领域比PHP中的“引用”实现更先进.

任何看过PHP的人都会理解为什么很容易实现效率提升.

我个人怀疑JVM可以胜过CPython但是……但我可能错了……我,这是由于JVM GC更快,而且IronPython也是如此.性能改进可能是不依赖于C调用堆栈,例如无堆栈Python. The Jython site states

Jython is approximately as fast as CPython–sometimes faster, sometimes slower. Because >most JVMs–certainly the fastest ones–do long running, hot code will run faster overtime.

我可以将其视为事实,因为JVM将在缓存生成时达到C性能级别等等,基本上否定了VM实现代码的更高级别方面(其中很大一部分是用C编写的)

在许多解释性语言中,例如PHP和Python只是等效C调用和潜入机器代码的桥梁.在JVM中,抖动通过将字节码减少为机器代码等价物来执行类似的功能.最终,高级语法和字节码等中间表示通常会降低到C速度或更快的CPU操作……所以它们都是相同的,只是更多的中间步骤,只会影响加载时的完全效率延迟新代码.在RAM中有一点你说“真正的区别是什么?”答案只是获得它的过程以及决定堆叠速度,垃圾收集算法,寄存器使用和逻辑表示(如算术)的最终表示.

网友评论