說我用var
和new
實例化一個大對象。在完成之後,我可以通過將其設置爲null
來「釋放」它嗎?這是什麼JavaScript GC GC尋找?Javascript GC並將對象分配給null
1
A
回答
2
垃圾收集對對象感興趣,它不被任何其他對象引用。因此,請確保您的應用程序中沒有任何引用(數組等)
+0
https://www.youtube.com/watch?v=RWmzxyMf2cE這是Colt McAnlis關於Javascript和GC的一個很好的「會議」。很有趣:) –
1
您可以通過將變量設置爲null
來打破參考,但不會破壞任何其他參考。
所有引用都需要在可以GC對象之前單獨打破。
所以是的,如果對該變量所持有的對象的唯一引用,那麼將其設置爲null
將使其最終GC釋放它。
0
因爲我沒有說明,您需要中斷所有引用以使變量符合垃圾回收的條件。如果您無法追查最後一次引用特定對象,這可能是一項艱鉅的任務,因此請使用可用於此任務的工具。我個人使用Chrome的堆分析器,你可以閱讀關於in the chrome docs。
此外,請注意,只有非基元類型通過引用傳遞(因此只有非基元類型可以GC'd)。
相關問題
- 1. 將對象分配給button.tag
- 2. 將一個對象分配給另一個對象並返回對象並將其分配給另一個在javaScript中的對象之間有什麼區別?
- 3. 將保留對象分配給弱屬性;對象將分配
- 4. 將對象分配給對象Java
- 5. JavaScript:將對象分配給另一個對象
- 6. Java:解析NumberFormat對象並將其分配給Number對象
- 7. 將null分配給XMLGregorianCalendar
- 8. 對象是否可以自動分配給第二代GC?
- 9. 將ID分配給結構對象
- 10. Java將值分配給數組/對象
- 11. 解析json對象並將其分配給數組
- 12. 查詢SQL,並將其分配給JavaScript
- 13. 將對象分配給每個var
- 14. 如何將值分配給JSON對象
- 15. jQuery將DOM元素分配給對象
- 16. 將JSON對象值分配給變量
- 17. 將對象分配給指針C++
- 18. 將對象分配給字符串
- 19. 將堆對象分配給std :: map
- 20. 將項目分配給對象字典
- 21. 如何將對象分配給字段
- 22. 將n維數組分配給對象
- 23. OGNL/Struts2 JSP將bean分配給對象
- 24. 如何將「int」分配給對象?
- 25. 將對象數組分配給DataGrid
- 26. 無法將新值分配給Javascript中的對象
- 27. 如何將子對象分配給JavaScript中的變量?
- 28. 如何將多個值分配給JavaScript對象?
- 29. 將索引號分配給JavaScript對象鍵
- 30. 擴展一個對象並將其分配給它的父代
這可能會幫助您:http://stackoverflow.com/a/742666/1249581。 – VisioN
只要儘量限制其範圍,如果真的需要使用'delete'。 –
@d_inevitable'delete'刪除對象的引用,但不刪除對象本身。但是,如果刪除引用,則GC將更快地瞭解無用的對象數據。 – VisioN