python为什么不如java_为什么Python在多处理或多线程应用程序方面不如Java?

我不同意Python在多处理应用程序方面并不比Java好。

首先,据我所知,我假设OP使用“better”来表示“更快的代码执行”。

我患有“速度怪胎”综合症,可能是因为我有C/ASM的背景,所以我花了相当长的时间来弄清“Python是不是很慢?”问题。

答案很简单吗?”可能是这样的。”这里有几个要点:

1)对于多线程应用程序,Python将对任何没有类似GIL的语言不利。GIL是CPython中Python虚拟机的产物,而不是Python语言本身。一些Python虚拟机,如Jython、IronPython等,没有GIL。

2)在多进程应用程序中,GIL并不真正适用,因此您现在可以开始利用Python代码的更快执行,而GIL在很大程度上不受影响。我强烈建议,如果您想编写既需要速度又需要并发性的大型Python代码,那么您应该学习多处理,并可能学习ZMQ/0MQ来进行消息传递。

3)不管GIL是什么,Java在许多方面都显示出比Python更快的代码执行速度。这是由于Python处理内存中对象的方式存在本机差异:Python使用Dict来存储对象等的属性。我不想分散注意力并深入研究这些领域,但我通常可以说,Python可以做的一些“整洁”的事情是以速度为代价的。同样重要的是要知道,如果这会给你造成太高的速度惩罚,那么有办法避免默认行为。

4)据我所知,Java的一些速度优势是由于Java虚拟机比Python进行了更多的优化。一旦消除了幕后内存/对象工作量的差异,Java通常仍然可以胜过Python。是因为Java比Python更受关注吗?我不确定,有足够的资金,我觉得CPython可以更快。

我要说的是,我已经决定百分之百地使用Python来开发新代码。

不要陷入过早的优化陷阱,记住你可以随时调用C代码。使代码工作良好,使其可维护,然后在应用程序的速度不足以满足您的需要时开始优化。

有趣的基准:

有关Python速度问题的更多信息,请参见:

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值