OCaml Bigarray:比内置数组慢?

时间:2012-10-29 15:17:49

标签: multidimensional-array ocaml

与C接口时使用Bigarray的缺点是什么?它们是否较慢,特别是对于小型2D矩阵?

2 个答案:

答案 0 :(得分:7)

基于查看实现,我会说如果你创建大量的短期数组,那么bigarrays可能会更慢。看起来它们的内存是在通常的OCaml GC之外进行管理的,它可以非常好地处理短期对象。

您也可能会发现对bigarray的访问没有内联,而对内置数组的访问则是。

另一方面,内置数组将为二维提供额外的间接。

如果性能真的很重要,您可能需要对特定应用程序进行基准测试。

答案 1 :(得分:3)

主要缺点就是类型 - bigarrays只能容纳原始类型的一小部分