与C接口(interface)不是问题时,使用Bigarray
有什么弊端?它们是否变慢,特别是对于小型2D矩阵?
最佳答案
仅基于对实现的了解,我会说,如果您创建大量的短期数组,那么大数组可能会变慢。看起来它们的内存是在普通的OCaml GC外部进行管理的,OCam GC可以很好地处理短期对象。
您还可能会发现,未内联对bigarray的访问,而对内建数组的访问则是内联的。
另一方面,内置数组将对二维有一个额外的间接寻址。
如果性能确实很重要,则可能必须对特定的应用程序进行基准测试。
关于multidimensional-array - OCaml Bigarray : slower than builtin arrays?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13124458/