Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python与Java性能(运行时速度)_Java_Python_Performance - Fatal编程技术网

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

Python与Java性能(运行时速度),java,python,performance,Java,Python,Performance,可能重复: 忽略每种语言的所有特征,只关注速度,哪种语言的性能更好 你可能认为这是一个非常简单的问题,但我还没有找到一个合适的答案 我知道python的某些类型的操作可能更快,反之亦然,但我找不到任何关于这方面的详细信息。有人能解释一下性能差异吗?Java比Python快。很容易 Python在很多方面都是有利的;速度不一定是其中之一 工具书类 不同的语言以不同的效率做不同的事情 有大量不同的编程问题用许多不同的语言实现。没有好的答案,因为Python和Java都是规范,有许多不同

可能重复:

忽略每种语言的所有特征,只关注速度,哪种语言的性能更好

你可能认为这是一个非常简单的问题,但我还没有找到一个合适的答案


我知道python的某些类型的操作可能更快,反之亦然,但我找不到任何关于这方面的详细信息。有人能解释一下性能差异吗?

Java比Python快。很容易

Python在很多方面都是有利的;速度不一定是其中之一

工具书类

    • 不同的语言以不同的效率做不同的事情


      有大量不同的编程问题用许多不同的语言实现。

      没有好的答案,因为Python和Java都是规范,有许多不同的实现。例如,CPython、IronPython、Jython和PyPy只是一些Python实现。对于Java,有HotSpot VM、Mac OS X Java VM、OpenJRE等。Jython生成Java字节码,因此它将或多或少使用相同的底层Java。CPython直接用C实现了很多东西,所以速度非常快,但是,Java虚拟机也在C语言中实现了许多功能。为了做出合理的声明,您可能必须逐个函数并跨各种解释器和虚拟机进行测量。

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

      例如:

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

      结论:你的问题没有答案,因为它没有定义你想要什么。即使你说得更清楚,这个问题也可能成为学术问题,因为你会衡量一些在现实生活中不重要的东西。对于我所有的项目,Java和Python总是足够快。当然,对于特定上下文中的特定问题,我更喜欢一种语言而不是另一种语言。

      语言没有速度,它们只有语义。如果你想比较速度,你必须选择具体的实现来相互比较。这相当于询问法语是否比英语快German@Woot4Moo:不完全是。有些(自然)语言平均需要更多的单词和/或音节来表达相同的意思。因此,这些事实上是可以比较的(当然,说话者说话的速度也是一种影响,但语言本身也有一种影响)。我认为,合理的假设是,问题在于实现,而不是语言本身specifications@Woot4Moo:你不同意哪一部分?语言的表达能力是不同的?@Joachim:我想如果我们谈论的是真正大的东西,你是对的。但目前,最优化的Java代码的性能将优于最优化的Python代码。Java=SunJava几乎是所有意图和目的的同义词。谈论实际上不运行的抽象事物是毫无意义的,比如说python是一种理念,java也是如此。我可能会在某个时候删除这个答案,但现在我很享受这个讨论。继续。@Michael-但我们又回到了原来的问题无法回答的问题。第一个原因是“语言”没有“性能”,第二个原因是它取决于给定任务的实现(在Java中使用O(n²)排序比在python中使用O(n log n)排序慢)。。。我认为保利的回答至少比这个问题好得多。@Joachim,@Michael:我认为现在有一个余地,可以给出一个合理真实的答案,一般来说。否则,什么也回答不了。在工程领域几乎没有什么永恒的真理,+1 Java JVM实际上造成了所有的差异。很好的观点如果你比较一下速度相似的东西,比如C和Java,那么当然,这些类型的问题是相关的。但是Java在JVM中编译为本机代码,并进行了大量优化。(不,它不直接运行字节码。)它比任何地方都快一个数量级@aberglas:如果你将人的生命周期与执行速度相比较,那么许多优化都会浪费人的生命周期,比如花几个星期来编写+调试代码,现在运行10分钟而不是1小时(在每次代码运行时集成运行时,直到整个世界消失)。能够编写普通人能够理解和维护的代码本身就是一种价值。当你只运行3次,并且总执行时间小于1分钟时,结果程序运行速度是否慢100倍并不重要。@Aaron Digulla问题在于速度,而不是风格,对于某些应用程序来说,速度很重要。拥有一种快速的语言可以避免C语言和一些“脚本”语言的混乱。也就是说,尽管Java有很多缺点,但对于任何大小的程序来说,Java都比python更快、更容易编程,因为它有静态类型。给定的链接断了,请修复它。@MANISHPATHAK修复了。