Skip to content

Instantly share code, notes, and snippets.

@ywwwtseng
Last active April 20, 2025 08:00
Show Gist options
  • Save ywwwtseng/76203bb4aeb14c53881c888918a3f561 to your computer and use it in GitHub Desktop.
Save ywwwtseng/76203bb4aeb14c53881c888918a3f561 to your computer and use it in GitHub Desktop.

🌐 瀏覽器運作流程與 Process / Thread 對應(從輸入網址到頁面顯示)

流程步驟 所屬 Process 所屬 Thread
使用者啟動瀏覽器 Browser Process Main Thread
使用者輸入網址、按下 Enter Browser Process UI Thread、IO Thread
查詢 DNS、建立連線 Network Process Network Thread
傳送 HTTP 請求 Network Process Network Thread
收到回應(HTML 等) Network Process Network Thread
將資料傳給 Render Process Render Process Main Thread(負責 HTML/CSS/JS 解析)
HTML Parsing → DOM 建立 Render Process Main Thread
CSS Parsing → Style Tree 建立 Render Process Main Thread
JavaScript 執行 Render Process Main Thread(或 Web Worker)
Layout(計算位置) Render Process Main Thread
Paint(繪製 Layer) Render Process Main Thread
Compositing(圖層合成) → Layer Tree Render Process Compositor Thread
傳送圖層給 GPU GPU Process GPU Thread
GPU 合成畫面並顯示 GPU Process GPU Thread(輸出到 Frame Buffer)

🧩 小結:圖層與 GPU 關係

項目 所在位置 說明
Layer 建立 Render Process 根據 DOM/CSS 產生 bitmap 圖層
Compositing Compositor Thread 排序與合成 Layer Tree
顯示畫面 GPU Process GPU 合成所有圖層並顯示到螢幕
Layer 改變時機 Render Process(repaint) DOM/CSS 發生變化時
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment