您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

MATLAB是否比Python快(简单的实验)

MATLAB是否比Python快(简单的实验)

首先,使用time并不是测试这种代码的好方法。但是,让我们忽略它。@H_404_3@

当您的代码需要执行很多循??环并在每次循环中重复非常相似的工作时,PyPy的JIT将做得很好。当该代码每次都执行完全相同 的操作时,达到可以从循环中取出的恒定值,它将做得更好。另一方面,cpython必须为每次循环迭代执行多个字节码,因此它会很慢。通过在我的计算机上进行的快速测试,cpython 3.4.1耗时24.2秒,而PyPy 2.4.0 / 3.2.5耗时0.0059秒。@H_404_3@

IronPython和Jython也是JIT编译的(尽管使用了更通用的JVM和.NET JIT),因此,对于此类工作,它们也往往比cpython快。@H_404_3@

通常,您还可以通过使用NumPy数组和向量运算而不是python列表和循环来加快cpython本身的工作速度。例如,下面的代码花费0.011秒:@H_404_3@

i = np.arange(10000000)
i[:] = 4 * x * (1-x)

当然,在这种情况下,我们显式只计算一次该值并将其复制10000000次。但是我们可以强制它一次又一次地进行实际计算,它仍然只需要0.12秒:@H_404_3@

i = np.zeros((10000000,))
i = 4 * (x+i) * (1-(x+i))

其他选项包括Cython编写部分代码(编译为Python的C扩展),以及使用Numba,后者通过JIT在cpython中编译代码。对于像这样的玩具程序,两者都不适合—如果您仅尝试优化一次性的24秒过程,那么花费在自动生成和编译C代码上的时间可能会浪费通过运行C代码而不是Python代码节省的时间。但是在现实的数字编程中,两者都是非常有用的。(而且两者都可以与NumPy很好地玩。)@H_404_3@

而且总是会有新的项目出现。@H_404_3@

python 2022/1/1 18:25:12 有183人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶