在Go中,当使用make语句时, 例如,分配兆字节的内存
make([]byte, 1024*1024*d)
在要求更多内存之前,有没有办法确定有多少内存空闲?
答案 0 :(得分:1)
感谢您的所有意见。
我决定使用Max_Memory配置选项,因为这个用例是在测试服务器(仅运行此应用程序)上使用n兆字节的内存,最高可达75%,作为一种触发方式在测试环境中自动缩放。
答案 1 :(得分:0)
是的。您可以使用gopsutil包:
package main
import (
"fmt"
"github.com/shirou/gopsutil/mem"
)
func main() {
vm, err := mem.VirtualMemory()
if err != nil {
panic(err)
}
fmt.Printf("Total:%d, Available:%d, Used:%d", vm.Total, vm.Available, vm.Used)
}
还有很多方法可以获取特定于操作系统的信息。它们都不是完美的,但它们会给你一些东西。
您还可以将Max Memory作为配置变量并使用:http://godoc.org/runtime#MemStats。