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

时间:2010-06-15 11:18:37

标签: java python performance

  

可能重复:
  is python slower than java/C#?

忽略每种语言的所有特征并专注于速度,哪种语言在性能方面更好?

您认为这是一个相当简单的问题,但我找不到合适的问题。

我知道python可能会更快某些类型的操作,反之亦然,但我找不到任何有关此内容的详细信息。任何人都可以对性能差异有所了解吗?

4 个答案:

答案 0 :(得分:80)

答案 1 :(得分:34)

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

例如:

  • 当Java以比Python更快的速度执行空循环时,它是否重要?
  • 或者当Python注意到循环体为空时,循环标题没有副作用并且优化整个循环时,Python是否更快?
  • 或者是“语言特征”?
  • 您想知道每种语言每秒可以执行多少字节码吗?
  • 哪些?只有快速的或全部的?
  • 如何计算Java VM JIT编译器在运行时将字节码转换为特定于CPU的汇编程序代码?
  • 您是否包含代码编译时间(在Java中是额外的,但始终包含在Python中)?

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

答案 2 :(得分:13)

没有好的答案,因为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为了做出任何合理的陈述。

答案 3 :(得分:9)

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

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