前端性能優化(1)-內存管理
1.javascript 內存管理
-
內存的基本概念javascript
一、分配所需的內存
二、內存的讀與寫html
三、不須要時將其釋放java
-
內存的生命週期程序員
- 定義變量時就完成了內存分配
- 內存的釋放依賴垃圾回收銷燬,或者手動銷燬
2.內存以兩種形式存在 棧(stack) 堆(heap)
-
堆(heap)是沒有結構的web
數據能夠任意存放。heap用於複雜數據類型(引用類型)分配空間,例如數組對象、object對象。
-
stack是有結構的chrome
每一個區塊按照必定次序存放(後進先出),stack中主要存放一些基本類型的變量和對象的引用,存在棧中的數據大小與生存期必須是肯定的。能夠明確知道每一個區塊的大小,所以,stack的尋址速度要快於heap。
常見的 結構 - 遞歸運算。
三、什麼是內存泄漏?
- 再也不用到的內存,沒有及時釋放,就叫作內存泄漏(memory leak)。
- 程序的運行須要內存。只要程序提出要求,操做系統或者運行時(runtime)就必須供給內存。
- 對於持續運行的服務進程(daemon),必須及時釋放再也不用到的內存。不然,內存佔用愈來愈高,輕則影響系統性能,重則致使進程崩潰。
- 提供自動內存管理,減輕程序員的負擔,這被稱爲"垃圾回收機制"
- 如今各大瀏覽器一般用採用的垃圾回收有兩種方法:標記清除、引用計數。
四、什麼是垃圾回收機制?
-
變量的生命週期數組
-
全局變量瀏覽器
- 他的生命週期會持續到頁面關閉(這就涉及到了後面要總結的內存泄漏的一種方式)
-
局部變量chrome-devtools
- 局部變量,在所在的函數的代碼執行以後,局部變量的生命週期結束,他所佔用的內存會經過垃圾回收機制釋放
五、 如何使用 performance 工具
- FPS是圖像領域中的定義,是指畫面每秒傳輸幀數,通俗來說就是指動畫或視頻的畫面數
如何使用 performance 工具函數
六、 內存泄漏 -參考文件
7.性能監控EMS 平臺
歡迎關注本站公眾號,獲取更多信息