用Go语言限制内存分配?

时间:2011-06-30 10:25:24

标签: go

我找到了一种限制Go语言内存使用量的方法。我使用Go语言实现的应用程序有一个必须加载到主内存中的大数据,所以我想将进程的最大内存大小限制为用户指定的大小。

在C语言中,实际上,我累积了malloc'ed内存的大小来做到这一点,但我不知道如何用Go语言做同样的事情。

如果有办法,请告诉我。

谢谢。

3 个答案:

答案 0 :(得分:4)

Go垃圾收集器不具有确定性,而且是保守的。因此,使用runtime.MemStats变量并不准确。

通过使用用户输入将允许一次加载的数据的最大大小设置为进程,修复大致的内存使用量。

答案 1 :(得分:1)

也许您想将ulimit与go代码结合使用?

答案 2 :(得分:0)

除了runtime.MemStats,您可以使用gosigar来监控系统内存。