如果你只是在堆内部进行分配(你会知道你是否在堆外部分配),请使用(Gc.quick_stat()).Gc.heap_words获取堆的大小,这是OCaml使用的整个内存的良好近似值.如其名称所示,该字段以32位或64位字表示.
您必须将此与OCaml无法猜测的某些限制进行比较,这是您希望程序使用的最大内存.该值取决于您想要留给其他进程的内存量,您是否考虑交换可接受的内容等等.第二个值取决于您的系统,而不是OCaml.即使您想将此值计算为计算机上RAM总量的固定分数,我也不知道使用OCaml执行此操作的任何可移植方式:您必须告诉我们有关您的系统的更多信息.
不要尝试free_words在GC统计数据中使用和类似的字段.这些只告诉你如何在堆内部划分空间."免费"字仍占用空间,垃圾收集器的作用是将此值保持在总数的合理分数.它会调整堆的大小以执行此操作.
| 归档时间: |
|
| 查看次数: |
279 次 |
| 最近记录: |