我正在寻找一种方法来限制Go语言中的内存使用。我用Go语言实现的应用程序有一个必须加载到主内存中的大数据,所以我想将进程的最大内存大小限制为用户指定的大小。在C语言中,实际上,我积累了malloc'艾德内存的大小来做到这一点,但我不知道如何在Go语言中做同样的事情。请让我知道是否有办法做到这一点。
myzjeezk1#
Go垃圾收集器不是确定性的,它是保守的。因此,使用runtime.MemStats变量对于您的目的来说是不准确的。通过设置您将允许使用用户输入一次加载到进程中的最大数据大小,来修复您的大致内存使用情况。
disbfnqx2#
也许你想把ulimit和你的go代码一起使用?
qzwqbdag3#
您可以通过运行时/调试来完成此操作。
fruv7luv4#
除了runtime.MemStats,你还可以使用gosigar来监控系统内存。
4条答案
按热度按时间myzjeezk1#
Go垃圾收集器不是确定性的,它是保守的。因此,使用runtime.MemStats变量对于您的目的来说是不准确的。
通过设置您将允许使用用户输入一次加载到进程中的最大数据大小,来修复您的大致内存使用情况。
disbfnqx2#
也许你想把ulimit和你的go代码一起使用?
qzwqbdag3#
您可以通过运行时/调试来完成此操作。
fruv7luv4#
除了runtime.MemStats,你还可以使用gosigar来监控系统内存。