pif*_*ifu 3 arrays ocaml garbage-collection
我知道a float array在运行时表示为带有double_array_tag和未装箱的浮点数的块,因此垃圾收集器不会扫描它(因为double_array_tag >= no_scan_tag).
但是int array呢?OCaml垃圾收集器如何知道不扫描其字段?
如果我理解正确,垃圾收集器将扫描一个字段int array.对于每个字段,它会注意到它是未装箱的,不再追求它.
这种行为可能效率不高; 但主要方面是它是安全的.float array除非每个人float都装箱(并且反过来又节省空间),否则在a的情况下是不安全的.
如果上述(时间)低效率是一个问题,则模块Bigarray可以提供解决方案.
| 归档时间: |
|
| 查看次数: |
136 次 |
| 最近记录: |