中文字幕日韩一区二区_国产一区二区av_国产毛片av_久久久久国产一区_色婷婷电影_国产一区二区精品

【譯】編寫高性能JavaScript

  英文鏈接:Writing Fast, Memory-Efficient JavaScript

  很多JavaScript引擎,如Google的V8引擎(被Chrome和Node所用),是專門為需要快速執行的大型JavaScript應用所設計的。如果你是一個開發者,并且關心內存使用情況與頁面性能,你應該了解用戶瀏覽器中的JavaScript引擎是如何運作的。無論是V8,SpiderMonkey的(Firefox)的Carakan(Opera),Chakra(IE)或其他引擎,這樣做可以幫助你更好地優化你的應用程序。這并不是說應該專門為某一瀏覽器或引擎做優化,千萬別這么做。

  但是,你應該問自己幾個問題:

  • 在我的代碼里,是否可以使代碼更高效一些
  • 主流的JavaScript引擎都做了哪些優化
  • 什么是引擎無法優化的,垃圾回收器(GC)是否能回收我所期望的東西

加載快速的網站就像是一輛快速的跑車,需要用到特別定制的零件. 圖片來源: dHybridcars.

  編寫高性能代碼時有一些常見的陷阱,在這篇文章中,我們將展示一些經過驗證的、更好的編寫代碼方式。

  那么,JavaScript在V8里是如何工作的?

  如果你對JS引擎沒有較深的了解,開發一個大型Web應用也沒啥問題,就好比會開車的人也只是看過引擎蓋而沒有看過車蓋內的引擎一樣。鑒于Chrome是我的瀏覽器首選,所以談一下它的JavaScript引擎。V8是由以下幾個核心部分組成:

  • 一個基本的編譯器,它會在代碼執行前解析JavaScript代碼并生成本地機器碼,而不是執行字節碼或簡單地解釋它。這些代碼最開始并不是高度優化的。
  • V8將對象構建為對象模型。在JavaScript中對象表現為關聯數組,但是在V8中對象被看作是隱藏的類,一個為了優化查詢的內部類型系統。
  • 運行時分析器監視正在運行的系統,并標識了“hot”的函數(例如花費很長時間運行的代碼)。
  • 優化編譯器重新編譯和優化那些被運行時分析器標識為“hot”的代碼,并進行“內聯”等優化(例如用被調用者的主體替換函數調用的位置)。
  • V8支持去優化,這意味著優化編譯器如果發現對于代碼優化的假設過于樂觀,它會舍棄優化過的代碼。
  • V8有個垃圾收集器,了解它是如何工作的和優化JavaScript一樣重要。

  垃圾回收

  垃圾回收是內存管理的一種形式,其實就是一個收集器的概念,嘗試回收不再被使用的對象所占用的內存。在JavaScript這種垃圾回收語言中,應用程序中仍在被引用的對象不會被清除。

  手動消除對象引用在大多數情況下是沒有必要的。通過簡單地把變量放在需要它們的地方(理想情況下,盡可能是局部作用域,即它們被使用的函數里而不是函數外層),一切將運作地很好。

垃圾回收器嘗試回收內存. 圖片來源: Valtteri Mäki.

  在JavaScript中,是不可能強制進行垃圾回收的。你不應該這么做,因為垃圾收集過程是由運行時控制的,它知道什么是最好的清理時機。

  “消除引用”的誤解

  網上有許多關于JavaScript內存回收的討論都談到delete這個關鍵字,雖然它可以被用來刪除對象(map)中的屬性(key),但有部分開發者認為它可以用來強制“消除引用”。建議盡可能避免使用delete,在下面的例子中delete o.x 的弊大于利,因為它改變了o的隱藏類,并使它成為一個"慢對象"。

var o = { x: 1 };delete o.x; // trueo.x; // undefined

it知識庫【譯】編寫高性能JavaScript,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 中文字幕国产精品 | 精品乱码一区二区 | 亚洲欧美中文日韩在线v日本 | 欧美视频三级 | 成人在线观看免费 | 黑人巨大精品欧美黑白配亚洲 | 九九精品久久久 | 久久国产精品免费 | 亚洲精品中文字幕中文字幕 | 色爱综合 | 国产在线高清 | 久草新视频 | 国产亚洲一区二区三区在线观看 | 成人99 | 中文字幕高清免费日韩视频在线 | 欧美成人第一页 | 欧美一区永久视频免费观看 | 一级片在线免费播放 | 国产成人福利视频在线观看 | 国产h视频 | 美女啪啪国产 | 日韩免费视频 | 一级片在线免费看 | 在线天堂免费中文字幕视频 | 精品久久久久久久久久久久久久 | 极品的亚洲 | 国产精品毛片 | 亚洲一区二区三区高清 | 精品国偷自产在线 | www国产亚洲精品久久网站 | 欧美精品一区二区三区在线 | 欧美一区二区成人 | 亚洲在线一区 | 亚洲欧美在线观看 | 久久久精彩视频 | 国产日韩视频 | 蜜桃av一区二区三区 | 精品国产区 | 免费99精品国产自在在线 | 国产美女福利在线观看 | 国产精品毛片一区二区三区 |