如何解决IronPython vs Python vs C#for循环的性能
我对Python和IronPython比较陌生。我为自己编写的相对简单的代码的性能(应该说是缓慢)感到惊讶:
matrix_column_count=1000
matrix_row_count=2000
matrix=[[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#开发,这些数字是否“正常”?还是我做错了什么?
解决方法
是的,这些是正确的数字。由于我无法评论(堆栈溢出点不足),因此我将从堆栈溢出中复制粘贴另一个类似的答案
答案很简单,就是Python处理所有对象,并且 默认情况下没有JIT。所以不是很 通过修改堆栈上的几个字节并优化热来提高效率 代码的一部分(即迭代)– Python突兀以及丰富 对象代表数字并且没有即时优化。
如果您在具有JIT的Python变体中尝试过此操作(例如, PyPy)我向您保证,您会看到很大的不同。
一般提示是避免在计算上非常复杂的标准Python 昂贵的操作(尤其是在后端服务中) 来自多个客户的请求)。带有JIT的Java,C#,JavaScript等 效率更高。
在此处查看详细的答案:https://stackoverflow.com/a/29904752/13993546
此外,您可能想检查Python基准测试与其他编程语言的详细比较,因此以下是链接,可能对您有用:
https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/python.html
https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/csharp.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。