Skip to content

Commit 076a656

Browse files
author
zhangdong
committedJul 31, 2024·
feat: 初始化
1 parent 134ed70 commit 076a656

File tree

4 files changed

+48
-4
lines changed

4 files changed

+48
-4
lines changed
 

‎.vitepress/config.mts

+4-1
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,10 @@ export default defineConfig({
9494
"/brower/": [
9595
{
9696
text: "浏览器",
97-
items: [{ text: "深入了解现代网络浏览器", link: "/brower/overview" }],
97+
items: [
98+
{ text: "深入了解现代网络浏览器", link: "/brower/overview" },
99+
{ text: "性能指标", link: "/brower/performanceTags" },
100+
],
98101
},
99102
],
100103
"/optimization/": [

‎brower/imgs/image1.png

51.7 KB
Loading

‎brower/overview.md

+15-3
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,25 @@ cpu(Central Processing Unit) gpu(Graphics Processing Unit) 是浏览器的核心
99

1010
进程可以描述为应用程序的执行程序。线程存在于进程内部并执行其进程程序的任何部分。
1111

12-
当您启动应用程序时,会创建一个进程。程序可能会创建线程来帮助其工作,但这是可选的。操作系统为进程提供了一块“内存”供其使用,并且所有应用程序状态都保存在该私有内存空间中。当您关闭应用程序时,进程也会消失,操作系统会释放内存。
12+
当您启动应用程序时,会创建一个进程。程序可能会创建线程来帮助其工作。操作系统为进程提供了一块“内存”供其使用,并且所有应用程序状态都保存在该私有内存空间中。当您关闭应用程序时,进程也会消失,操作系统会释放内存。
1313

1414
进程可以请求操作系统启动另一个进程来运行不同的任务。当这种情况发生时,内存的不同部分将分配给新进程。如果两个进程需要通信,它们可以使用进程间通信 (IPC) 进行通信
15-
16-
15+
## 谷歌浏览器的架构
16+
最顶层是browser,它与负责应用程序不同部分的其他进程进行协调。对于渲染器进程,会创建多个进程并将其分配给每个选项卡
17+
![alt text](./imgs/image1.png)
18+
19+
| Process | What it controls |
20+
|----------|------------------|
21+
| Browser | 控制应用的chrome部分, 包括地址栏,书签,前进后退按钮.也处理不可见的权限部分,例如网络请求和文件访问. |
22+
| Renderer | 控制选项卡下网站展示的部分 |
23+
| Plugin | 控制网站使用的任何插件,例如 flash. |
24+
| GPU | 处理GPU任务,独立于其他进程.它被分成不同的进程,因为 GPU 处理来自多个应用程序的请求并将它们绘制在同位置. |
25+
26+
还有更多进程,例如扩展进程和实用程序进程。
1727
## 导航
1828
重点介绍用户请求网站和浏览器准备呈现页面的部分,从browser Process开始
29+
30+
标签之外的所有内容均由浏览器进程处理。浏览器进程具有多个线程,例如绘制浏览器按钮和输入字段的 UI 线程、处理网络堆栈以从互联网接收数据的网络线程、控制文件访问的存储线程等。当您在地址栏中键入 URL 时,您的输入由浏览器进程的 UI 线程处理。
1931
### 处理input
2032
当用户尝试在地址栏输入,UI thread 会询问这是一个搜索查询还是URL,因此UI thread 需要解析并决定发送到搜索引擎还是站点
2133
### 开始导航

‎brower/performanceTags.md

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
---
2+
layout: doc
3+
outline: deep
4+
---
5+
## LCP(Largest Contentful Paint)
6+
7+
LCP 会报告视口中可见的最大图片或文本块的呈现时间
8+
9+
对于视频会判断封面时间和第一帧呈现时间中较短的为准
10+
11+
## CLS(Cumulative Layout Shift)
12+
衡量页面整个生命周期中不符合预期的布局偏移
13+
14+
## INP(Interaction to Next Paint)
15+
评估网页对用户互动的总体响应情况。最终 INP 值是观测到的最长互动时间
16+
17+
## TTFB(加载第一个字节所需时间)
18+
用于衡量从请求资源到响应的第一个字节开始到达的时间点之间的时长
19+
20+
## FCP(First Contentful Paint)
21+
衡量从用户首次导航到网页到网页内容的任何部分在屏幕上呈现的时间
22+
23+
## TBT(Total Blocking Time)
24+
衡量在 First Contentful Paint (FCP) 之后主线程被阻塞的时间足以阻止输入响应的总时间
25+
26+
主线程“阻塞”因为浏览器无法中断正在进行的任务。因此,如果用户在长时间运行的任务过程中与页面交互,浏览器必须等待任务完成后才能响应。
27+
28+
如果任务时间足够长(超过 50 毫秒),用户很可能会注意到延迟,并认为网页运行缓慢或已损坏。
29+

0 commit comments

Comments
 (0)
Please sign in to comment.