Memory 检测ocaml下的内存是否不足

Memory 检测ocaml下的内存是否不足,memory,ocaml,Memory,Ocaml,我需要一种方法来检测内存是否不足,以便我的ocaml程序能够对此做出反应。你能告诉我如何实现或使用它吗 有什么提示吗 再见,Andreas如果您只在堆内分配(您会知道是否在堆外分配),请使用(Gc.quick_stat()).Gc.heap_words获得堆的大小,这是OCaml使用的整个内存的一个很好的近似值。正如其名称所示,此字段用32位或64位字表示 您必须将其与OCaml无法猜测的限制进行比较,这是您希望程序使用的最大内存。这个值取决于你想留给其他进程多少内存,是否考虑交换可接受,等等。

我需要一种方法来检测内存是否不足,以便我的ocaml程序能够对此做出反应。你能告诉我如何实现或使用它吗

有什么提示吗


再见,Andreas

如果您只在堆内分配(您会知道是否在堆外分配),请使用
(Gc.quick_stat()).Gc.heap_words
获得堆的大小,这是OCaml使用的整个内存的一个很好的近似值。正如其名称所示,此字段用32位或64位字表示

您必须将其与OCaml无法猜测的限制进行比较,这是您希望程序使用的最大内存。这个值取决于你想留给其他进程多少内存,是否考虑交换可接受,等等。第二个值取决于您的系统,而不是OCaml。即使您想将该值计算为计算机上RAM总量的固定部分,我也不知道使用OCaml进行计算的任何便携式方法:您必须告诉我们有关您的系统的更多信息


请勿尝试在中使用
自由词
和类似字段。这些仅告诉您如何在堆内划分空间。“Free”字仍然占据空间,垃圾收集器的职责是将该值保持在总数的合理部分。为了做到这一点,它调整了堆的大小。

您好,本网站希望您回到过去问题的答案,并在适当的情况下选择一个“已接受”的答案,以帮助将来有相同问题的人。若你们不这样做,每问一个新问题你们都会得到恼人的评论(比如这个)。谢谢你们的提示,这很有帮助:)若能有一个便携式的方法来计算系统中的可用内存,那个就好了。