我刚在纳瑞图书馆找到鲁比——请原谅我问这个问题时的无知:)
与标准的ruby数组实现相比,使用narray库有什么优势?
我已经看到了Narray是面向数值计算的,但是看看API,看起来数组上只有一些面向数值的扩展——这与数组无关。
为什么不直接使用数组呢?
有巨大的速度优势吗?
有巨大的内存优势吗?
与使用常规ruby数组类相比,还有什么其他优势吗?
对于这个问题,谷歌并没有给出一个有用的解释。
我找到的参考资料:
http://rubydoc.info/gems/narray-ruby19/0.5.9.7/NArray
http://narray.rubyforge.org/index.html.en
http://raa.ruby-lang.org/project/narray/

最佳答案

另请参见关于Narray的幻灯片:
http://www.slideshare.net/masa16tanaka/narray-and-scientific-computing-with-ruby
看起来数组上只有几个扩展
不,它和数组完全不同。
narray具有许多数值函数和多维特性。
另一方面,narray是静态的;它没有push/pop方法等。
Narray的方法列表是http://narray.rubyforge.org/SPEC.en
1。为什么不直接使用数组呢?
数组包含ruby对象。保存数值是低效的。
2。有巨大的速度优势吗?
对。以上幻灯片的第36页显示,Narray的速度快了50倍。
注意,如果循环是用ruby编写的,那么array比narray快。
3。有巨大的内存优势吗?
对。至于浮点值,在我的64位Linux机器上,数组消耗的内存大约是Narray的4倍。
小精灵。与使用常规ruby数组类相比,还有什么其他优势吗?
多维数组的支持
数值函数的支持
不需要对数组项进行垃圾收集。对于大型数组,gc需要大量时间。
等。

08-25 19:42