簡體   English   中英

如何檢查 javascript 變量的 memory 分配

[英]How to check memory allocation for a javascript variable

var test = [{a:1,b:2}];

test.value = test;

對於上面的代碼,我想看看瀏覽器占用了多少memory。 性能是否有任何副作用(因為遞歸使用測試變量)。 我從gist創建了一個示例 function 但超出了最大堆棧調用。 我只是想了解使用迭代方法的問題。

我知道我們可以修改上面的代碼以使其非遞歸,如下所示:

var test = [{a:1,b:2}];

test.value = [...test];

JS 總是將對象的賦值作為 memory 引用,有很多方法可以只復制對象的值。

這是我最喜歡的

test.value = Object.assign({}, test);

更通用

object_copy = Object.assign({}, object_origin)

該代碼所做的是將原始對象的值合並到一個新對象中,我們將其初始化為空 object {}

嘗試 chrome memory 配置文件快照

我剛剛寫了一個小代碼來檢查您操作過程中 memory 的分配量,並使用 chrome devtool 記錄了 memory 的分配量。

這是我寫的代碼:

 <HTML> <body> <button onclick="startTest()">Start Test</button> </body> <script> function startTest() { var test = [{a:1,b:2}]; test.value = test; } </script> </html>

當按鈕單擊時 startTest() function 運行。

於是我開始記錄 memory 分配並按下Start Test按鈕,結果如下: 結果

圖片中的藍色細線顯示為變量test分配的 memory 很快被垃圾收集器釋放。 這意味着不存在遞歸或任何 memory 分配問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM