网易首页 > 网易号 > 正文 申请入驻

我测了Pretext.js:浏览器基准测试不会告诉你的事

0
分享至

  几年前——按现在的标准感觉像上古历史了——Twitter上吵得火热的是Pretext.js,一个文本布局库。它的 headline 声称比标准 DOM 测量快得多:不让浏览器布局引擎计算文字尺寸,而是在纯 JavaScript 里完成等价工作,数据通过 prepare() 一次性准备好。理论上,每次测量都不会触发强制重排。

  不同人的演示看起来都很 impressive,我好奇实际到底有多快。只有一个问题:我并不擅长性能测量。除了基础的 Core Web Vitals 工作——LCP、INP 这些常规指标——我对这种微基准测试毫无经验。

  

  我开始研究这些测量到底怎么做,结论是应该从最简单的测试开始:比较三种策略的单次调用成本——DOM、Canvas、Pretext。

  我选了最精简的配置,避免测试框架本身拖累运行时:Astro 静态输出,只在需要交互的地方用 React 孤岛,手写测量工具。我为每种策略写了最小实现,开始跑测试。

  以下是我学到的东西。几乎都和 Pretext 无关。

  第一轮基准测试结果长这样:大部分格子显示零。不是零的那些 suspiciously 整齐——正好 100.00、200.00、400.00。这些整数是线索。

  2018 年 Spectre 漏洞披露后,浏览器故意降低 performance.now() 的精度,让基于计时的内存攻击更难。Chrome 把计时器四舍五入到约 100 微秒,Firefox 和 Safari 约 1 毫秒。你可以在控制台验证:

  console.log(performance.now() % 1)
// Chrome: ~0.1 递增
// Firefox: 0

  我一直在基准测试某些情况下不到 1 微秒就完成的操作。当然返回零——计时器根本没有更小的单位来表达。

  crossOriginIsolated 页面可以通过基于 SharedArrayBuffer 的时钟解锁约 5 微秒计时精度,但设置 COOP/COEP 响应头很麻烦。批量计时在不碰响应头的情况下达到同样的有效精度。

  正经基准测试库(benchmark.js、tinybench、criterion 风格框架)的标准修复方案是批量计时。不是每次调用单独测,而是测 N 次调用的批次再除以 N:

  // 我之前写的——有问题
for (let i = 0; i < 1000; i++) {
const t0 = performance.now()
measure()
timings.push(performance.now() - t0)
}

  // 应该是这样
const BATCH = 1000
for (let i = 0; i < iterations; i++) {
const t0 = performance.now()
for (let j = 0; j < BATCH; j++) measure()
timings.push((performance.now() - t0) / BATCH)
}

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
伊朗若真让步,是“识时务”还是无奈?

伊朗若真让步,是“识时务”还是无奈?

小眼睛小世界
2026-05-07 06:24:07
每周多达三次!萨摩亚女足球员,被指控:性侵14岁美国男孩!

每周多达三次!萨摩亚女足球员,被指控:性侵14岁美国男孩!

川渝视觉
2026-05-07 20:49:40
1958年毛泽东视察济南,酒桌上突然猛砸杯子死盯王新亭:把你隐瞒的秘密交底吧?

1958年毛泽东视察济南,酒桌上突然猛砸杯子死盯王新亭:把你隐瞒的秘密交底吧?

史海孤雁
2026-05-05 17:07:19
别再被抗战剧骗了!一名日军摄影师,拍下真正的“鬼子进村”照片

别再被抗战剧骗了!一名日军摄影师,拍下真正的“鬼子进村”照片

历史甄有趣
2026-05-04 08:10:22
把瑜伽裤穿成日常的松弛感美女

把瑜伽裤穿成日常的松弛感美女

只要高兴就好
2026-04-13 14:30:30
凯特·贝金赛尔红毯状态碾压00后,网友:这姐是吃了防腐剂?

凯特·贝金赛尔红毯状态碾压00后,网友:这姐是吃了防腐剂?

小燕烹那鱼
2026-05-06 11:41:00
99%的女人出轨完男人后,都会默契地做出这3种行为,不信你看看

99%的女人出轨完男人后,都会默契地做出这3种行为,不信你看看

加油丁小文
2026-05-03 08:30:16
男人出不出轨,取决于有没有机会;女人出不出轨,取决于她的男人

男人出不出轨,取决于有没有机会;女人出不出轨,取决于她的男人

新时代的两性情感
2026-03-22 12:05:46
不能说的秘密

不能说的秘密

贵圈真乱
2026-05-02 12:20:52
为什么年轻黑人喜欢中国姑娘?听听大妈怎么说

为什么年轻黑人喜欢中国姑娘?听听大妈怎么说

风起见你
2026-05-07 07:32:39
嫁到中国一年的德国姑娘,回德国2天后直言:中国的快了“有毒”

嫁到中国一年的德国姑娘,回德国2天后直言:中国的快了“有毒”

番外行
2026-03-29 00:05:03
日本网友疯换中文手机界面,直呼清爽十倍,中国文化悄悄出圈!

日本网友疯换中文手机界面,直呼清爽十倍,中国文化悄悄出圈!

行者聊官
2026-04-24 20:48:30
太寒心!盐城龙凤胎事件,孩子早产,老公把彩礼8.8万骤降至3.8万

太寒心!盐城龙凤胎事件,孩子早产,老公把彩礼8.8万骤降至3.8万

魔都姐姐杂谈
2026-05-06 13:19:53
一个人的命好不好,脱鞋看一眼“脚”就知道!脚上有这两种特征的人,天生就是“富贵命”,越老越有钱

一个人的命好不好,脱鞋看一眼“脚”就知道!脚上有这两种特征的人,天生就是“富贵命”,越老越有钱

心理观察局
2026-05-03 08:19:04
我敢说,大部分会跟我一样,选择黑色衣服那个女孩!

我敢说,大部分会跟我一样,选择黑色衣服那个女孩!

草莓解说体育
2026-04-12 17:05:01
国际乒联主席提条件:樊振东可以参加2028奥运会,但有个前提

国际乒联主席提条件:樊振东可以参加2028奥运会,但有个前提

三十年莱斯特城球迷
2025-12-16 23:09:38
俄半路想截胡中吉乌铁路,乌总理紧急访华,警示别重蹈图们江覆辙

俄半路想截胡中吉乌铁路,乌总理紧急访华,警示别重蹈图们江覆辙

老媹古装影视解说
2026-05-06 18:57:38
5月底撞大运,9月添财喜,7月金银滚滚来!四大生肖好运全来

5月底撞大运,9月添财喜,7月金银滚滚来!四大生肖好运全来

阿龙美食记
2026-05-07 18:37:04
特朗普刻意施压访华日程,中方强硬表态:绝不妥协让步!

特朗普刻意施压访华日程,中方强硬表态:绝不妥协让步!

无人倾听无人倾听
2026-05-08 01:12:57
标普连创新高,但聪明钱都在撤退,高盛警告:闪崩只是时间问题

标普连创新高,但聪明钱都在撤退,高盛警告:闪崩只是时间问题

補懂事的孩紙
2026-05-07 22:59:25
2026-05-08 04:24:49
硅屿手记
硅屿手记
有态度网友ytd
3647文章数 19关注度
往期回顾 全部

科技要闻

月之暗面完成20亿美元融资,估值突破200亿

头条要闻

日媒询问中国是否希望恢复中日之间人员往来 中方回应

头条要闻

日媒询问中国是否希望恢复中日之间人员往来 中方回应

体育要闻

巴黎再进欧冠决赛,最尴尬的情况还是发生了

娱乐要闻

Lisa主持!宁艺卓观看脱衣秀风波升级

财经要闻

人均年薪406万,这家ST公司惊呆市场!

汽车要闻

雷克萨斯全新纯电三排SUV 全新TZ全球首发

态度原创

时尚
教育
亲子
游戏
军事航空

今年最火的4双平底鞋,配小黑裙好看又气质!

教育要闻

二模很重要!2026临沂二模、青岛二模语文、数学试题及答案!

亲子要闻

只祝她“母亲节快乐”是不够的

《远星物语》团队新作《皓白初晓》登Steam EA

军事要闻

特朗普:美伊"很可能"达成协议

无障碍浏览 进入关怀版