思源、李亚洲参与

为什么Julia比Python快?因为天生理念就更先进啊

其实像以前 C 或其它主流语言在使用变量前先要声明变量的具体类型,而 Python 并不需要,赋值什么数据,变量就是什么类型。然而没想到正是这种类型稳定性,让 Julia 相比 Python 有更好的性能。

选择 Julia 的最主要原因:要比其他脚本语言快得多,让你拥有 Python/Matlab /R 一样快速的开发速度,同时像 C/Fortan 那样高效的运行速度。

Julia 的新手可能对下面这些描述略为谨慎:

  1. 为什么其他语言不能更快一点?Julia 能够做到,其他语言就不能?

  2. 你怎么解释 Julia 的速度基准?(对许多其他语言来说也很难?)

  3. 这听起来违背没有免费午餐定律,在其他方面是否有损失?

许多人认为 Julia 快是因为它使用的是 JIT 编译器,即每一条语句在使用前都先使用编译函数进行编译,不论是预先马上编译或之前先缓存编译。这就产生了一个问题,即 Python/R 和 MATLAB 等脚本语言同样可以使用 JIT 编译器,这些编译器的优化时间甚至比 Julia 语言都要久。所以为什么我们会疯狂相信 Julia 语言短时间的优化就要超过其它脚本语言?这是一种对 Julia 语言的完全误解。

在本文中,我们将了解到 Julia 快是因为它的设计决策。它的核心设计决策:通过多重分派的类型稳定性是允许 Julia 能快速编译并高效运行的核心,本文后面会具体解释为什么它是快的原因。此外,这一核心决策同时还能像脚本语言那样令语法非常简洁,这两者相加可以得到非常明显的性能增益。

但是,在本文中我们能看到的是 Julia 不总像其他脚本语言,我们需要明白 Julia 语言因为这个核心决策而有一些「损失」。理解这种设计决策如何影响你的编程方式,对你生成 Julia 代码而言非常重要。

为了看见其中的不同,我们可以先简单地看看数学运算案例。

专业用户独享

本文为机器之心深度精选内容,专业认证后即可阅读全文
开启专业认证
入门MatlabPythonJulia
2
暂无评论
暂无评论~