使用Ruby NArray而不是Array有什么好处?

我刚刚遇到了 Ruby的NArray库 – 请原谅我在提出这个问题时的无知:)

使用NArray库比标准Ruby Array实现有什么好处?

我已经看到NArray面向数值计算,但是看看API,看起来只有少数几个扩展而不是数值 – 没有你不能用Array做的事情.

>为什么不使用Array?
>是否有巨大的速度优势?
>是否有巨大的记忆优势?
>使用常规Ruby Array类还有什么优势?

谷歌并没有真正想出这个问题的有用解释.

参考资料我发现:

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

it looks like there are only a few extensions over Array

不,它与Array完全不同.
NArray具有许多数值函数和多维特征.
另一方面,NArray是静态的;它没有推/弹方法等.
NArray的方法列表是http://narray.rubyforge.org/SPEC.en

_1. Why not just use Array?

Array拥有Ruby Objects.保持数值是低效的.

_2. Is there a huge speed advantage?

是.上面幻灯片中的第36页显示NArray的速度提高了50倍.

请注意,如果循环是用Ruby编写的,则Array比NArray快.

_3. Is there a huge memory advantage?

是.至于Float值,在我的64位Linux机器上,Array消耗的内存大约是NArray的4倍.

_4. Any other advantages over using the regular Ruby Array class?

>支持多维数组>支持数字功能>不需要对Array项进行垃圾回收. GC需要很长时间才能使用大型阵列.>等

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...