Как выделить резидентную память? - PullRequest
0 голосов
/ 03 января 2019

Я обнаружил после b := make([]byte,4096000000), выделенная память является виртуальной памятью, я хочу пометить их как RES (использование физической памяти, как показано сверху), как это сделать?

rand.Read(b) оченьмедленно.

1 Ответ

0 голосов
/ 03 января 2019

Используйте хотя бы один байт на каждой странице. Например,

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...