Я обнаружил после b := make([]byte,4096000000), выделенная память является виртуальной памятью, я хочу пометить их как RES (использование физической памяти, как показано сверху), как это сделать?
b := make([]byte,4096000000)
rand.Read(b) оченьмедленно.
rand.Read(b)
Используйте хотя бы один байт на каждой странице. Например,
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