当前位置:  开发笔记 > 编程语言 > 正文

Python与Java性能(运行时速度)

如何解决《Python与Java性能(运行时速度)》经验,为你挑选了4个好方法。

Java比Python更快.容易.

Python对许多事情都有利; 速度不一定是其中之一.

参考

python.org/Language比较

C++ vs Java vs Python vs Ruby:第一印象

对两种高级面向对象语言的主观分析:将Python与Java进行比较

Java = SunJava几乎是所有意图和目的的同义词.谈论那些实际上并没有运行的抽象事物,比如python作为一个想法,对于java来说也是如此. (3认同)

我可能会在某个时候删除这个答案,但现在我很享受这个讨论.继续. (3认同)

@Joachim,@迈克尔:我认为现在可以给出一个合理真实的回答.否则,什么都无法回答.工程领域几乎没有普遍的永恒真理. (3认同)

@Michael - 但后来我们回到原来问题无法回答的地步.首先是因为"语言"没有"性能",其次是因为它取决于给定任务的实现(在Java中使用O(n²)排序比在python中使用O(n log n)排序更慢)...我认为保利的答案至少要比问题好得多. (2认同)


Aaron Digull.. 33

如果忽略两种语言的特性,如何定义"SPEED"?哪些功能应该在您的基准测试中,哪些功能要省略?

例如:

当Java以比Python更快的速度执行空循环时,它会计算吗?

或者当Python注意到循环体是空的时,Python更快,循环头没有副作用,它优化了整个循环?

还是那种"语言特征"?

您想知道每种语言每秒可以执行多少字节码吗?

哪个?只有快速的或全部的?

你如何计算Java VM JIT编译器在运行时将字节码转换为CPU特定的汇编代码?

你是否包括代码编译时间(在Java中是额外的,但总是包含在Python中)?

结论:您的问题没有答案,因为它没有定义您想要的内容.即使你说得更清楚,问题也可能成为学术问题,因为你会测量一些在现实生活中不重要的东西.对于我的所有项目,Java和Python一直都足够快.当然,在某种情况下,我更倾向于使用一种语言来解决特定问题.



1> polygenelubr..:

Java比Python更快.容易.

Python对许多事情都有利; 速度不一定是其中之一.

参考

python.org/Language比较

C++ vs Java vs Python vs Ruby:第一印象

对两种高级面向对象语言的主观分析:将Python与Java进行比较


Java = SunJava几乎是所有意图和目的的同义词.谈论那些实际上并没有运行的抽象事物,比如python作为一个想法,对于java来说也是如此.
我可能会在某个时候删除这个答案,但现在我很享受这个讨论.继续.
@Joachim,@迈克尔:我认为现在可以给出一个合理真实的回答.否则,什么都无法回答.工程领域几乎没有普遍的永恒真理.
@Michael - 但后来我们回到原来问题无法回答的地步.首先是因为"语言"没有"性能",其次是因为它取决于给定任务的实现(在Java中使用O(n²)排序比在python中使用O(n log n)排序更慢)...我认为保利的答案至少要比问题好得多.

2> Aaron Digull..:

如果忽略两种语言的特性,如何定义"SPEED"?哪些功能应该在您的基准测试中,哪些功能要省略?

例如:

当Java以比Python更快的速度执行空循环时,它会计算吗?

或者当Python注意到循环体是空的时,Python更快,循环头没有副作用,它优化了整个循环?

还是那种"语言特征"?

您想知道每种语言每秒可以执行多少字节码吗?

哪个?只有快速的或全部的?

你如何计算Java VM JIT编译器在运行时将字节码转换为CPU特定的汇编代码?

你是否包括代码编译时间(在Java中是额外的,但总是包含在Python中)?

结论:您的问题没有答案,因为它没有定义您想要的内容.即使你说得更清楚,问题也可能成为学术问题,因为你会测量一些在现实生活中不重要的东西.对于我的所有项目,Java和Python一直都足够快.当然,在某种情况下,我更倾向于使用一种语言来解决特定问题.


@aberglas:如果你将人的生命周期与执行速度进行比较,那么许多优化会浪费人的生命,比如花几周的时间编写+调试代码,现在运行10分钟而不是1小时(每次代码运行时都会运行运行时直到宇宙死亡).能够编写正常人可以理解和维护的代码本身就是一种价值.如果生成的程序运行速度慢100倍,运行速度仅为3次,总执行时间<1分钟,则无关紧要.

3> Michael Aaro..:

没有好的答案,因为Python和Java都是有许多不同实现的规范.例如,CPython,IronPython,Jython和PyPy只是少数几种Python实现.对于Java,有HotSpot VM,Mac OS X Java VM,OpenJRE等.Jython生成Java字节码,因此它将使用或多或少相同的底层Java.CPython直接在C中实现了很多东西,所以它非常快,但是再一次Java VM也在C中实现了许多功能.你可能需要在逐个函数的基础上和各种解释器之间进行测量. VM为了做出任何合理的陈述.



4> Oli..:

不同的语言以不同的效率水平做不同的事情.

http://benchmarksgame.alioth.debian.org/u64q/which-programs-are-fastest.html在很多不同的语言中实现了大量不同的编程问题.

推荐阅读
360691894_8a5c48
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有