亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Golang內存分配測試

Golang內存分配測試

Go
蠱毒傳說 2021-11-08 16:54:43
我正在嘗試使用我的“程序”分配內存 - 只是為了分配它并留在那里 - 用于測試目的。當我在我的 MacOS 上運行它時,活動監視器顯示它分配了 1.6 GB,當我為 linux 編譯它并在那里運行它時,它什么也不做——它打印了消息,但機器上沒有使用 ram。我做錯了嗎?有沒有更好的辦法?這是我的代碼:package mainimport (    "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 上沒有工作?
查看完整描述

1 回答

?
飲歌長嘯

TA貢獻1951條經驗 獲得超3個贊

您的代碼中沒有任何內容需要內存。編譯器完全有權利優化整個分配,即使編譯器不這樣做,操作系統也不會提交內存-您永遠不會分配任何內容,因此它可能只是鏡像零頁。

我對您使用的任何 Linux 與您使用的 MacOS 之間的細微差別一無所知,因此幾乎無法確定。很可能您檢查 linux 機器上的內存的方式只給您提交的內存,而您看到的是 MacOS 上的所有虛擬內存,或者可能存在其他細微的差異。無論如何,由于編譯器變得智能并且我們在 PC 上擁有虛擬內存,因此獲得任何有意義的基準變得越來越難——我們使用的工具通常足夠智能,可以避免不必要的浪費;并且您將嘗試的大多數基準測試幾乎完全是不必要的浪費。

基準測試很難。


查看完整回答
反對 回復 2021-11-08
  • 1 回答
  • 0 關注
  • 194 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號