惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

GbyAI
GbyAI
T
Tenable Blog
Webroot Blog
Webroot Blog
L
Lohrmann on Cybersecurity
S
Securelist
S
Schneier on Security
NISL@THU
NISL@THU
Know Your Adversary
Know Your Adversary
C
Cybersecurity and Infrastructure Security Agency CISA
T
The Exploit Database - CXSecurity.com
L
LINUX DO - 热门话题
C
CXSECURITY Database RSS Feed - CXSecurity.com
O
OpenAI News
I
Intezer
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
TaoSecurity Blog
TaoSecurity Blog
S
Secure Thoughts
Application and Cybersecurity Blog
Application and Cybersecurity Blog
P
Privacy International News Feed
H
Hacker News: Front Page
N
Netflix TechBlog - Medium
M
MIT News - Artificial intelligence
博客园 - Franky
PCI Perspectives
PCI Perspectives
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Microsoft Azure Blog
Microsoft Azure Blog
MongoDB | Blog
MongoDB | Blog
L
LangChain Blog
P
Proofpoint News Feed
S
Security Affairs
WordPress大学
WordPress大学
The Last Watchdog
The Last Watchdog
S
SegmentFault 最新的问题
小众软件
小众软件
F
Full Disclosure
博客园 - 叶小钗
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
T
The Blog of Author Tim Ferriss
Simon Willison's Weblog
Simon Willison's Weblog
P
Palo Alto Networks Blog
Security Latest
Security Latest
P
Proofpoint News Feed
月光博客
月光博客
T
Tailwind CSS Blog
Scott Helme
Scott Helme
Hacker News - Newest:
Hacker News - Newest: "LLM"
Google Online Security Blog
Google Online Security Blog
T
Threat Research - Cisco Blogs
Help Net Security
Help Net Security
Project Zero
Project Zero

webfem

react-virtualized AutoSizer 实现原理详解 - webfem JWT技术详解:从入门到精通 - webfem 如何在电脑上调试手机网页 - webfem react-virtualized 的用法详解 - webfem MongoDB 入门详解 - webfem react-virtualized 无限列表图片闪屏问题修复 - webfem 博客搭建-创建文章接口 - webfem 代码相似性检查机制 - webfem WebSocket 技术详解:实时通信的利器 - webfem 小米YU7购车记-新能源购置税计算器的诞生 - webfem 手动搭建个人博客 - webfem 博客搭建-项目工程搭建 - webfem Base64编码详解:原理、应用与实践 - webfem 字数统计算法深度解析:从Unicode到实际应用的硬核技术实现 - webfem 衬线体与无衬线体:字体设计的经典对决 - webfem 如何把 小程序 转换为 VUE - webfem 性能优化-核心指标-FP - webfem MD5算法原理及其实现 - webfem 如何设计一个后端管理平台 - webfem
性能优化-核心指标-SI 的介绍与优化 - webfem
yimin,2316114920@qq.com · 2025-08-26 · via webfem

什么是 SI

速度指数 (SI, Speed Index) 衡量页面加载期间内容的视觉显示速度。SI 测量页面加载期间内容在视觉上填充的速度,分数越低越好。对于此指标,重点关注的是首屏内容的渲染进度,而不是单个元素的加载时间。

SI加载过程

在此加载时间轴中,SI 通过计算每个时间点的视觉完成度来衡量页面加载的整体速度。

在上图中所示的加载时间轴中,SI 通过分析每个时间点页面的视觉完成百分比来计算得出。页面内容填充得越快,SI 分数就越低(越好)。

您会发现,SI 与其他指标如 FCP 和 LCP 不同,它不是测量单个时间点,而是衡量整个加载过程中的视觉进度,这使得它能够更全面地反映用户感知的加载速度。

SI 得分多少算好

为了提供良好的用户体验,网站应尽量将速度指数控制在 3.4 秒或更短的时间。为确保大多数用户都能达到此目标值,一个合适的衡量阈值是网页加载时间的第 75 个百分位数,并按移动设备和桌面设备进行细分。

SI 得分

更详细的数据可以参考 lighthouse 性能分计算

如何获取 SI

在实际开发中,SI 通常通过性能测试工具来获取,因为它需要分析视频帧来计算视觉完成度:

// 使用 Lighthouse API 获取 SI
const lighthouse = require('lighthouse');
const chromeLauncher = require('chrome-launcher');

async function getSpeedIndex(url) {
  const chrome = await chromeLauncher.launch({chromeFlags: ['--headless']});
  const options = {logLevel: 'info', output: 'json', port: chrome.port};
  const runnerResult = await lighthouse(url, options);

  const speedIndex = runnerResult.lhr.audits['speed-index'].numericValue;
  console.log('Speed Index:', speedIndex, 'ms');

  await chrome.kill();
  return speedIndex;
}

Speed Index 的计算需要通过视频分析来确定每个时间点的视觉完成度,因此通常依赖专业的性能测试工具。

通过测试 本网站的 SI 数值是 1.2s,在 3.4s 以内,属于性能优秀的。也验证了我们在 Lighthouse 性能分计算过程详解 过程中的高分结果

如何优化 SI

SI 反映的是页面内容的视觉填充速度,因此优化重点是加快首屏内容的渲染减少渲染阻塞

🌐 优化网络

网络优化是web性能绕不开的话题,我们已经总结在 前端性能优化-网络篇 感兴趣的直接查阅即可。

这里给到优化思维导图:

网络优化

🚀 优化关键渲染路径​

  • 优先加载首屏内容​:使用 preload 预加载关键资源,确保首屏内容优先渲染

  • 内联关键 CSS​:将首屏所需的 CSS 直接内联,避免额外的网络请求延迟

  • 延迟非关键资源​:使用 asyncdefer 或动态加载非首屏资源

  • 减少渲染阻塞:避免大型 JavaScript 文件阻塞页面渲染

⚙️ 渐进式渲染优化

  • 骨架屏(Skeleton Screen)​:在内容加载时显示页面结构,提升感知性能

  • 分块渲染​:将页面内容分成多个块,优先渲染重要内容

  • 避免布局抖动​:为图片和广告预留空间,减少 CLS

🖼️ 资源优化

  • 图片优化​:使用 WebP/AVIF 格式,合理设置图片尺寸

  • 字体优化​:使用 font-display: swap 避免字体阻塞渲染

  • 代码分割​:按需加载 JavaScript 代码,减少初始包大小

  • 服务端渲染(SSR)​:预渲染首屏内容,加快初始显示

📊 监控和测量

  • 持续监控​:使用 Lighthouse CI 或 WebPageTest 定期测试 SI

  • 真实用户监控(RUM)​:收集真实用户的性能数据

  • A/B 测试​:对比不同优化策略的效果

原文地址:https://webfem.com/post/performance-si,转载请注明出处