如何在make()语句之前确定可用内存

时间:2015-09-03 17:42:53

标签: go

在Go中,当使用make语句时, 例如,分配兆字节的内存

    make([]byte, 1024*1024*d)

在要求更多内存之前,有没有办法确定有多少内存空闲?

2 个答案:

答案 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