我正在一個WebGL項目中運行一些內存使用測試。如果我在Google Chrome上啓動該頁面並在Developers Tool的Profiles標籤上獲取堆快照,則會說我的頁面持有7.5 MB。Chrome堆堆快照 - 爲什麼它不顯示所有分配的內存?
問題是如果我查看任務管理器,它使用的真實值幾乎爲1 GB!這是預料之中的,因爲我真的迫使頁面有成千上萬的對象,但問題是:爲什麼Chrome向我顯示我只用了7.5 MB?
我正在一個WebGL項目中運行一些內存使用測試。如果我在Google Chrome上啓動該頁面並在Developers Tool的Profiles標籤上獲取堆快照,則會說我的頁面持有7.5 MB。Chrome堆堆快照 - 爲什麼它不顯示所有分配的內存?
問題是如果我查看任務管理器,它使用的真實值幾乎爲1 GB!這是預料之中的,因爲我真的迫使頁面有成千上萬的對象,但問題是:爲什麼Chrome向我顯示我只用了7.5 MB?
更新
有那能告訴你的本機內存圖形本機內存快照。 不幸的是我們刪除了它,因爲它是一段脆弱的代碼。 它需要數百個類的非平凡工具,並影響二進制大小。 我希望稍後重新實現。
爲
它需要使用Javascript堆的快照。所有的JavaScript對象都使用7.5MB。此大小不包括圖像,畫布,音頻文件,插件數據等。
DevTools中存在本機內存快照。 它計算渲染器進程使用的非JavaScript內存,但這是一個實驗性功能。
您需要在chrome://flags
中啓用DevTools實驗功能,重啓瀏覽器,在DevTools設置面板中啓用Native Memory Profiler實驗功能,然後重新打開DevTools。
完成所有這些步驟後,您將可以在Profiler面板中使用本機內存快照。 並非本地內存堆中的所有內存塊都被計算在內,但我們正在努力。請使用Canary version of Chrome。 它每天更新並與其他版本的Chrome並行工作。
如果您的頁面佔用千兆字節的內存,並且有大的「其他」欄,超過10%-20%,請將相關郵件放到Google Chrome Developer Tools Foums。
不幸的是,谷歌已經從實驗開發工具中刪除了本機內存快照功能。我不知道爲什麼。但這意味着這個答案不再有效:/ – UpTheCreek
有本地內存快照,能夠向您顯示本機內存圖。不幸的是我們刪除了它,因爲它是一段脆弱的代碼。它需要上百種類的非平凡儀器,並影響二進制大小。我希望我們稍後再實現它。 – loislo
感謝您的更新 - 看起來我不能再獎勵賞金,但擁有+1! – UpTheCreek
您仍然可以在配置文件選項卡下拍攝快照,然後單擊拍攝快照,爲您提供深入的內存使用情況統計。
shapshots只是給你一個堆的視圖。正如問題所述,問題在於分析Chrome任務管理器中顯示的內存使用情況,但不會顯示在堆中。 – UpTheCreek
Chrome的進程分佈在插件,選項卡和主要的Chrome服務中。你想要什麼快照? – TheZ
@TheZ我真正想知道的是我的頁面正在使用的內存量。 –
你應該在http://crbug.com提交一個錯誤 – gman