为了账号安全,请及时绑定邮箱和手机立即绑定

IronPython vs Python vs C# for 循环的性能

IronPython vs Python vs C# for 循环的性能

牧羊人nacy 2023-09-05 15:37:15
我对 Python 和 IronPython 比较陌生。我对我编写的相对简单的代码的性能(应该说缓慢)感到惊讶:matrix_column_count=1000matrix_row_count=2000matrix=[[random.uniform(0,100) for i in range(matrix_column_count)] for j in range(matrix_row_count)]在 IronPython 2.7.10 上运行它大约需要 1 秒(有一些小的变化)!在 Python 3.8.6 上运行需要 0.55 秒 在 C# 中运行类似的东西需要 0.03 秒!这些数字对于 Python 开发与 C# 开发来说是“正常”的还是我做错了什么?
查看完整描述

1 回答

?
慕姐8265434

TA贡献1813条经验 获得超2个赞

是的,这些数字是正确的。由于我无法发表评论(没有足够的堆栈溢出点),所以我将从堆栈溢出复制粘贴另一个类似的答案

答案很简单,Python 处理所有事情的对象,并且默认情况下它没有 JIT。因此,Python 并没有通过修改堆栈上的几个字节并优化代码的热点部分(即迭代)来提高效率,而是随着表示数字的丰富对象一起运行,并且没有即时优化。

如果您在具有 JIT 的 Python 变体(例如 PyPy)中尝试过此操作,我向您保证您会看到巨大的差异。

一般提示是避免使用标准 Python 进行计算成本非常高的操作(特别是如果这是用于服务来自多个客户端的请求的后端)。Java、C#、JavaScript 等使用 JIT 的效率是无与伦比的。

查看完整回答
反对 回复 2023-09-05
  • 1 回答
  • 0 关注
  • 136 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信