2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

Web Worker 通信性能研究:通过多线程改进 Web 应用性能

  • 2019-08-19
  • 本文字数:1182 字

    阅读完需:约 4 分钟

Web Worker通信性能研究:通过多线程改进Web应用性能

Surma 是谷歌的 Web 布道师,最近发布了一项有关 postMessage 的性能研究结果。postMessage 是 Web Worker 的通信方式。Surma 的结论是,虽然 postMessage 会带来一些开销,但如果有效载荷低于给定的开销预算,那么将非 UI 任务移出主线线可能会提高总体性能。


超过一半的互联网接入来自手机或平板电脑,而低端多核移动设备的市场份额一直在增加,Web 应用程序开发人员必须确保应用程序在低配置的环境中(如慢 CPU、GPU 或小内存)也能具有高性能。


在这种情况下,使用多线程的 Web Worker 可以将与计算相关的负载从主执行线程中隔离出来。最终的性能是在原生多核心架构上并行化任务(如果可用)所带来的好处加上与线程间通信开销相关的成本的总和。对于 Web 应用程序来说,主要的通信开销是使用 postMessage 方法在主 UI 线程和 Web Worker 之间进行通信。


由于一些开发人员不愿使用 Web Worker, Surma 对 postMessage 的性能做了一些说明。Surma 解释了他的研究背后的缘由:


人们不会考虑使用 Web Worker,是因为他们担心 postMessage()的性能,所以这是值得研究的一件事情。


该研究包括两个基准。第一个基准测试分析了在线程之间发送消息所需的时间,并显示了它与所发送的对象的复杂性之间的正相关关系。


第一个基准测试分别在 2018 款 MacBook Pro 上的 Firefox、Safari 和 Chrome 上运行,在 Pixel 3XL 的 Chrome 上运行,在诺基亚 2 的 Chrome 上运行。对象复杂度是指表示对象的 JSON 树的深度(树的层次)和宽度(属性的数量)的组合。


第二个基准测试证实了与 JSON.stringify()返回的字符串长度的强正相关关系,不过带有一些警告。Surma 解释说:


我认为这种相关性足够强,我们可以从中得出一个法则:对象的字符串化 JSON 表示与它的传输时间大致成正比。但更重要的是,这种相关性只适用于大对象,我说的大对象是指超过 100KB 的对象。虽然这种相关性在数学上是成立的,但这种差异对于较小的有效载荷来说更为明显。


Surma 根据响应动画空闲加载(RAIL)指南给出了“慢”的定义,并对涉及 JS 驱动动画的上下文(显示下一帧的预算为 16ms)和不涉及上下文(响应用户交互的预算为 100ms)的情况进行了区分。


Surma 总结道:


即使在最慢的设备上,你也可以使用 postMessage()发送 100KB 的对象,并保持在 100ms 的响应预算之内。如果有 JS 驱动的动画,有效载荷达到 10KB 是没有问题的。对于大多数应用程序来说,这应该足够了。使用 postMessage()确实有一定的代价,但不至于会导致脱离主线程架构变得不可用。


对于 postMessage 成本超过在多个线程上运行任务的好处的情况,Surma 提供了替代方案,比如通过使用分块技术或 WebAssembly 来提升性能。


完整的研究结果可以在 Surma 的博客上找到,其中包含了数据、可视化演示和图表。


原文链接


Improving Webapp Performance With Multi-Threading: A Study of Web Workers’ Communication Overhead


2019-08-19 08:007662
用户头像

发布了 731 篇内容, 共 466.7 次阅读, 收获喜欢 2006 次。

关注

评论

发布
暂无评论
发现更多内容

比特币BTC是对草根最友好的加密资产,大胆持有,坚定抄底!

区块链项目一站式包装孵化

WebGL开发框架的性能比较

北京木奇移动技术有限公司

软件外包公司 webgl外包开发 webgl开发公司

AI 正以颠覆性力量重塑商品管理的底层逻辑

第七在线

SQL Server 2025 - 从本地到云端的 AI 就绪企业数据库

sysin

SQL Server

AI赋能,赛博威「营销+上市+产品」三线并行产品创新协同平台加速爆品上市!

赛博威科技

数字营销 赛博威 产品创新协同平台

性能王者!天翼云再次拿下世界第一

天翼云开发者社区

云平台 算力 天翼云

萨科微宋仕强,在人工智能Ai大模型文本写作的试用与反思!

科技汇

前端热更新:无声革命重构中国互联网开发模式

xuyinyin

浅谈企业应用中台的构建

天翼云开发者社区

企业应用中台

vivo 官网 APP 首页端智能业务实践

vivo互联网技术

深度学习 算法 前端

告别静态UI!Guineration用AI打造用户专属动态界面

鼎道智联

【FAQ】HarmonyOS SDK 闭源开放能力 —Live View Kit (3)

HarmonyOS SDK

harmoyos

企业级AI搜索解决方案:阿里云AI搜索开放平台

阿里云大数据AI技术

云计算 大数据 阿里云 信息搜集 AI 搜索引擎

展位预定倒计时!500+企业云集,西部不容错过的电子行业盛会

AIOTE智博会

电子展 电子信息展 成都电子展 西部电子展

为什么政府单位、事业单位要用自己的内网即时通讯软件?

BeeWorks

即时通讯 IM

大厂外包VS小公司,你会怎么选?

王中阳Go

Go 外包 小公司

MySQL派生条件下推优化导致自定义变量结果错误问题分析

GreatSQL

Microchip扩展连接、存储与计算产品组合,以满足AI数据中心应用日益增长的需求

新消费日报

一文快速了解 YMatrix 与 Greenplum 的相同与不同

YMatrix 超融合数据库

数据库 greenplum 迁移数据 YMatrix

NocoBase 本周更新汇总:模板打印支持批量打印

NocoBase

开源 低代码 零代码 版本更新 模板打印

破局多语之邦,如何让AI听懂印度方言?

数据堂

人工智能 AI 数据 印度 印度互联网

AI技术在英语口语学习中的应用

北京木奇移动技术有限公司

软件外包公司 AI口语练习 AI英语学习

HDD•鸿蒙赋能交流会模式升级!“培训+班级”开启长效学习进阶之路

最新动态

赛博威 AI Agent 赋能营销费用管理,实现自主感知、决策与高效行动

赛博威科技

AI 数字营销 AI Agent 赛博威

天翼云牵头编制国家标准,共建行业技术标杆!

天翼云开发者社区

云计算 科学计算 智能计算 天翼云

深入浅出DDD:从理论到落地的关键

百度Geek说

Go 后端

CAD如何导出PDF?PDF如何转CAD?详细教程来了

在路上

cad cad看图 CAD看图软件

【CodeBuddy】三分钟开发一个实用小功能之:马赛克生成器

jimaks

CSS

WebGL开发框架的比较

北京木奇移动技术有限公司

软件外包公司 webgl开发 webgl外包开发

如何将CAD图纸直接导出为工程蓝图?

在路上

cad cad看图 CAD看图王

浪潮海岳inSuite 5.0标准版重磅发布,赋能中小企业数智化转型再提速

浪潮海岳inSuite

Web Worker通信性能研究:通过多线程改进Web应用性能_移动_Bruno Couriol_InfoQ精选文章