技術周刊(V8 引擎 2018-09-17)

技術周刊(V8 引擎 2018-09-17)

來自專欄阿里媽媽前端快爆39 人贊了文章

前端快爆

  • Chrome 69 的更新帶來了一個 URL 展示上的 bug:子域名將被吞掉,www.m. 都一樣消失於地址欄中。??

點評:腦海中浮現出設計師和工程師爭 URL 展現的場面……為了避免它影響到開發,可以更新最新版,他們又改回去啦!

  • Chrome 意欲實現 img 標籤上的 ElementTiming API,結合 Paint Timing API 可用於更細緻的性能數據監測。??

點評:性能數據監測走向更細膩和更自動化,相對應的優化方法還是粗糙且人工的,這是一個前端可以深挖的方向

  • React 16.5 發布,相對於 16.4,此版本追加了與 React DevTools Profiler 的聯動,修正了大量 API 的細節問題。??

點評:16.5 沒有 16.3 的新生命周期方法、16.4 的生命周期方法細節修正那麼刺激,縫縫補補又三月

  • Github Gist 上出現了一行足以讓你的 iOS 或 macOS 重啟的 CSS,該攻擊的核心為使用一個 backdrop-filter 包含足夠深、佔用面積足夠大的 div,此方式可以耗竭設備資源,並導致內核恐慌。??

點評:只限於 WebKit 系列的瀏覽器,Chrome 對 backdrop-filter 的支持需要打開實驗性功能開關

  • 第一屆在深圳的前端藝術家沙龍於上周結束,探討了 CSS Houdini、多端統一框架、前後端同構業務實戰、表單與國際化等議題,相關 PPT 已放出。??

點評:裡面有你的絲姐哦

瑞士軍刀

  • Ant Design Pro 2.0 發布,此版本加入了四個全新的頁面、多種布局方式來豐富 pro 的使用場景、腳手架從 roadhog 切換到了 umi2,並加入一個設置抽屜。??
  • luma.gl 是由 Uber 團隊開源的 WebGL 2 可視化基礎庫。

  • Svgurt 是一個將點陣圖轉化為矢量圖的工具。

  • Momentjs 可以算是現在用途十分廣泛的工具包了,但它十分大,gZip 之前有 329k,我們可以用 80k 的 date-fns 或 7k 的 dayjs 替代。
  • Npm 開源了實驗性項目 tink ,它可用來自動安裝和校驗項目依賴包,且不用把內容下載到項目 node_modules 文件夾中。??

點評:官方聲明裡明確提及不要期待它能和任何已有項目兼容,所以就不用自己去試著 npx npm/tink

專題:V8

本期由社區大牛 @justjavac 為我們帶來 V8 專題。V8 是一個由 Google 開發的開源 JavaScript 引擎,被 Node.js、Atom、VSCode、Deno、Electron 等軟體依賴。這個月恰逢 V8 的十周年開源紀念,2008 年 9 月 2 日,V8 與 Chrome 在同一天宣布開源。早在 2006 年,Lars Bak 和幾個朋友就開始在他家農場里辦公,並成功開發出地球上速度最快的 JavaScript 引擎。

介紹

  • V8 團隊博客
  • 認識 V8 引擎
  • V8 引擎版本發布流程

進階

  • 理解 V8 的位元組碼
  • JavaScript 為什麼快
  • V8 內存淺析
  • V8 Object 內存結構與屬性訪問詳解
  • 手把手測試你的 JS 代碼性能
  • JavaScript 在 V8 中的元素種類及性能優化
  • JavaScript 引擎基礎:Shapes 和 Inline Caches

開發

  • V8 概念以及編程入門
  • 新手應該如何讀 Google V8 引擎源代碼?
  • 使用 D8 分析 javascript 如何被 V8 引擎優化的
  • Node.js 編程之路之與 V8 引擎共舞

工具/資源

  • v8-perf:V8 的相關性能文章/資源匯總
  • v8-bailout-reasons:V8 無法優化的場景匯總
  • node-heapdump:用於 dump V8 上的堆數據
  • v8-profiler:可與 node-inspector 一起用於檢視 node 的堆數據快照
  • v8-analytics:解析上兩個工具的產出,高亮優化失敗、高耗時函數和可疑內存泄漏點

本期編輯:承虎(humphry) & 審閱: @一絲 & 專題供稿: @justjavac

推薦閱讀:

悄悄掀起 WebAssembly 的神秘面紗
跨了個域
文檔和元素的幾何滾動
js中的原型與原型鏈

TAG:V8 | 前端開發 | 前端工程師 |