使用 V8 分析 Chromium

V8 的 CPU 和堆積分析器在 V8 的殼層中使用很簡單,但要將它們與 Chromium 搭配使用可能會讓人感到困惑。此頁面將協助您解決這個問題。

為什麼將 V8 的分析器與 Chromium 搭配使用與在 V8 殼層中使用它們不同?#

Chromium 是個複雜的應用程式,不像 V8 殼層。以下是影響分析器使用的 Chromium 功能清單

如何執行 Chromium 以取得 CPU 分析?#

以下是執行 Chromium 以從程序開始取得 CPU 分析的方法

./Chromium --no-sandbox --user-data-dir=`mktemp -d` --incognito --js-flags='--prof'

請注意,您不會在開發人員工具中看到分析,因為所有資料都記錄到檔案中,而不是開發人員工具。

旗標說明 #

--no-sandbox 關閉渲染器沙箱,讓 Chrome 可以寫入日誌檔。

--user-data-dir 用於建立新的設定檔,使用此旗標可以避免快取和已安裝擴充功能可能產生的副作用(選用)。

--incognito 用於進一步防止結果受到污染(選用)。

--js-flags 包含傳遞給 V8 的旗標

Android #

Android 上的 Chrome 有許多獨特之處,讓分析變得更複雜。

下列指令可在 Android 上啟用剖析

./build/android/adb_chrome_public_command_line --no-sandbox --single-process --js-flags='--logfile=/storage/emulated/0/Download/%t.log,--prof'
<Close and relaunch Chome on the Android device>
adb pull /storage/emulated/0/Download/<logfile>
./src/v8/tools/linux-tick-processor --apk-embedded-library=out/Release/lib.unstripped/libchrome.so --preprocess <logfile>

注意事項 #

在 Windows 下,務必為 chrome.dll 開啟 .MAP 檔案建立,但不要為 chrome.exe 開啟。