跳至主要内容

5 篇文章 含有標籤「工具」

檢視所有標籤

加速 V8 堆快照

· 閱讀時間約 11 分鐘
Jose Dapena Paz

這篇博客由 José Dapena Paz (Igalia) 撰寫,Jason Williams (Bloomberg), Ashley Claymore (Bloomberg), Rob Palmer (Bloomberg), Joyee Cheung (Igalia), 和 Shu-yu Guo (Google) 共同參與。

在這篇文章中,我將討論 Bloomberg 工程師發現的 V8 堆快照中的一些性能問題,以及我們如何修復這些問題以使 JavaScript 記憶體分析比以往更快。

問題

Bloomberg 工程師正在診斷一個 JavaScript 應用程式中的記憶體洩漏問題。該應用報錯 Out-Of-Memory。對於所測試的應用程式,V8 堆限制被設置大約為 1400 MB。通常情況下,V8 的垃圾回收器應該可以使堆使用量保持在這個限制以下,因此該錯誤表明可能存在記憶體洩漏。

Indicium: V8 運行時追蹤工具

· 閱讀時間約 7 分鐘
Zeynep Cankara ([@ZeynepCankara](https://twitter.com/ZeynepCankara))

過去三個月對我來說是一段非常棒的學習經歷,因為我作為實習生加入了 V8 團隊(Google London),並且正在開發一個新工具 Indicium

這款系統分析器是一個統一的網頁介面,用於追蹤、調試以及分析 Inline Caches (ICs) 和 Map 在真實應用中如何被創建與修改的模式。

V8 已經擁有一套針對 ICsMaps 的追蹤基礎設施,可以通過 IC Explorer 處理和分析 IC 事件,以及通過 Map Processor 分析 Map 事件。但之前的工具無法統合分析 Maps 和 ICs,而系統分析器現在能夠做到這一點。

裡面的 `.wasm` 是什麼?介紹一下:`wasm-decompile`

· 閱讀時間約 7 分鐘
Wouter van Oortmerssen ([@wvo](https://twitter.com/wvo))

我們有越來越多的編譯器和其他工具生成或操作 .wasm 文件,有時您可能想要看看其內部結構。也許您是此類工具的開發者,或者更直接地說,您是一個面向 Wasm 的程序員,並想了解生成的代碼模樣,這樣做是出於性能或其他原因。

脫離網頁:使用 Emscripten 的獨立 WebAssembly 二進位檔

· 閱讀時間約 13 分鐘
Alon Zakai

Emscripten 一直以來主要專注於編譯到 Web 和其他像是 Node.js 的 JavaScript 環境。但隨著 WebAssembly 開始被 獨立於 JavaScript 使用,新的用例正在出現,因此我們一直在努力為 Emscripten 增加支援生成 獨立 Wasm 檔案的功能,這些檔案不依賴於 Emscripten 的 JS 運行時!這篇文章將解釋為什麼這很有趣。

Emscripten 和 LLVM WebAssembly 後端

· 閱讀時間約 13 分鐘
Alon Zakai

WebAssembly 通常是從源代碼語言編譯而來,這意味著開發人員需要 工具 才能使用它。因此,V8 團隊致力於相關的開源項目,例如 LLVMEmscriptenBinaryen、和 WABT。本文描述了我們在 Emscripten 和 LLVM 上的部分工作,這項工作將很快使 Emscripten 默认切換到 LLVM WebAssembly 後端——請測試並回報任何問題!