Я пытаюсь выделить память своей «программой» - просто выделите ее и оставайтесь там - для целей тестирования. Когда я запускаю его на своем MacOS, Activity Monitor показывает, что он выделяет 1,6 ГБ, когда я его компилирую для Linux и запускаю там, он ничего не делает - он печатает сообщение, но барабан не используется на машине. Я делаю это неправильно? Есть ли способ лучше? Вот мой код:Тест распределения памяти Golang
package main
import (
"fmt"
"unsafe"
"time"
)
func main() {
var buffer [100 * 1024 * 1024]string
fmt.Printf("The size of the buffer is: %d bytes\n", unsafe.Sizeof(buffer))
time.Sleep(300 * time.Second)
}
Сначала я использовал байт для моего типа массива, но это не сработало событие на моем mac?
Измерение «сколько памяти используется» было простой задачей 25 лет назад. Это уже не так просто, поскольку существует быстрое количество различных типов «памяти». И «используется» - это очень неопределенный термин для памяти. Используйте инструментарий, предоставляемый 'go test -benchmem', чтобы увидеть, как« распределение тяжело »вашего кода. Этот показатель более надежный и более важный. – Volker