首页 / 首页 / 性能基线

Benchmark · 基线

性能基线
拿数字说话

「感觉挺快」不算结论,跑一遍请求数再说。

页面体积基线

越小越好,这是刻意的

页面HTML样式脚本外部请求
首页约 13 KiBstyle.css 8 KiB + sub.css 12 KiBmain.js 7 KiB + sub.js 7 KiB1(Releases API)
软件库约 8 KiB同上sub.js0
单个应用约 5 KiB同上 + app.css 5 KiBapp.js 5–9 KiB0
在线工具箱约 4 KiBtools.csstools.js 约 60 KiB0
状态页约 4 KiB同上js/status.js 7 KiB12(四仓各三次,15 分钟一次)

没有字体文件、没有图标库、没有框架。图标用 emoji 与内联 SVG,字体用系统字体栈。

怎么自己测

三条命令,别信感觉

# 1. 体积与请求数
curl -s -o /dev/null -w "size=%{size_download} time=%{time_total}\n" https://xkmyth.github.io/

# 2. 打开 DevTools → Network → 勾选 Disable cache → 刷新,看 Transfer 总量
# 3. Lighthouse(移动端 + 桌面端各跑一次),重点看 TBT 与 CLS

这套站点的目标是:首屏请求数 ≤ 6、传输 ≤ 60 KiB、CLS 接近 0。达不到就说明有人往页面里塞了多余的东西。

性能上的取舍

明确知道放弃了什么

不做视觉重特效

星空是 canvas,只在可见时绘制,DPR 上限 2,切后台立刻停。

不做无限滚动列表

工具与截图都在本地,一次性渲染;数据量变大前不引入虚拟滚动。

不做 SSR

静态 HTML 已经是「构建期渲染」,没有服务端可做,也不需要。

实测体积

脚本量的,不是估的(gzip 按 9 级压缩模拟服务器压缩结果)

资源原始gzip 后
主站 style.css30.2 KiB7.8 KiB
主站 sub.css27.3 KiB6.9 KiB
主站 sub.js20.1 KiB6.7 KiB
主站 main.js4.1 KiB1.7 KiB
工具站 tools.css23.8 KiB6.1 KiB
工具站 tools.js271.3 KiB79.4 KiB
工具站 script.js5.8 KiB2.2 KiB
页面 HTML原始gzip 后
首页21.5 KiB6.0 KiB
工具目录72.8 KiB17.0 KiB
软件库17.5 KiB5.3 KiB
工具总览7.5 KiB2.8 KiB
某个工具详情8.5 KiB3.1 KiB
站务日志11.0 KiB4.0 KiB

首次访问首页的传输量 ≈ 首页 HTML + style.css + sub.css + sub.js 的 gzip 之和,其余页面复用缓存。工具站第一次打开会多下载一份 tools.js(160 个工具的定义都在里面,换来的是一次加载之后完全离线可用)。