如何分配常驻内存?

时间:2019-01-03 09:18:10

标签: go

我在b := make([]byte,4096000000)之后发现,分配的内存是虚拟内存,我想将它们标记为RES(物理内存使用情况,如上图所示),该怎么做?

rand.Read(b)非常慢。

1 个答案:

答案 0 :(得分:3)

每页至少使用一个字节。例如,

package main

import (
    "fmt"
    "time"
)

func main() {
    b := make([]byte, 2*1024*1024*1024)
    fmt.Println(len(b))
    pagesize := os.Getpagesize()
    for i := 0; i < 60; i++ {
        for j := 0; j < len(b); j += pagesize {
            b[j] = 42
        }
        time.Sleep(1 * time.Second)
    }
}

输出:

2147483648

顶部:

RES 2.1g