什么是Crystal编程语言?这是一种静态类型的,已编译的,面向对象的语言,其语法在很大程度上受到了Ruby的启发。
其网站上的承诺是该语言的速度与C一样快,与Ruby一样流畅。这句话听起来令人兴奋,并且使您想检查Crystal与Ruby相比有多快。当然,这不是一个公平的比较,因为一种是编译语言,另一种是解释语言)。
让我们用Ruby和Crystal编写一些代码,以生成给定数字的斐波那契数列。然后,我们可以看到在序列中找到第46个数字(即1,836,311,903)需要花费多少时间。您将在稍后看到我为什么选择此号码。
Ruby:
def fibonacci(n)
return n if n < 2
fibonacci(n-1) + fibonacci(n-2)
end
puts fibonacci(46)
|
Crystal:
def fibonacci(n)
return n if n < 2
fibonacci(n-1) + fibonacci(n-2)
end
puts fibonacci(46)
|
我的机器上的结果:
语言运行内存使用情况
Ruby 2.6.5p114(2019-10-01修订版67812)运行时间:1:54.46分钟 内存:16.10M
Crystal0.34.0(2020-04-07) 运行时间:12.617秒 内存:1.87M
|
Crystal版本快11倍。
其他资源