如何优化线上WebAssembly

如何,优化,webassembly · 浏览次数 : 130

小编点评

由于 WebAssembly WebAssembly部署使用 HTTPS 的特殊性,每次请求都会重新加载程序集,从而导致浏览器频繁加载。 通过查看 `Cache Storage` 的内容,可以发现当使用 HTTPS 时,`Cache Storage` 中的程序集文件可能被缓存,导致每次请求都从缓存中加载。由于 `Cache Storage` 的限制,对于 HTTPS 请求来说,这会阻止缓存中程序集的加载,导致浏览器再次加载程序集。 具体来说,当您使用 HTTPS 打开网站时,首先将请求发送到服务器。服务器会将响应数据封装成 WebAssembly 模块并将其存储在 `Cache Storage` 中。当您再次请求该网站时,浏览器首先从 `Cache Storage` 中加载该模块。由于 `Cache Storage` 限制,浏览器无法从缓存中加载程序集,因此会再次加载程序集。

正文

如何优化线上WebAssembly

WebAssembly部署使用 HTTPS
为什么?我可以通过一个案例查看 ,下面我们会通过masa docs站点进行测试
打开 http://docs.masastack.com/blazor/getting-started/installation 网站
查看网络耗时

刷新浏览器 按住 F5刷新

我们看到又一次加载了dll ,这是HTTP的加载,每次请求都会重新加载程序集

继续测试HTTPS ,打开 https://docs.masastack.com/blazor/getting-started/installation ,我们可以看到第一次加载的程序集

刷新浏览器 按住 F5刷新,查看结果 ,我们发现浏览器似乎并没有加载程序集 ,

从当前测试中我们可以知道Http似乎每次加载界面都会重新加载程序集 然而HTTPS只有第一次加载程序集,为什么会这样?

这个时候我们可以查看调试工具的 应用程序 => Cache Storage , 这是HTTPS中的缓存

在打开HTTP应用程序 => Cache Storage , 我们发现应用加载完成以后我们的Cache Storage还是空的。

原因主要是Cache Storage限制 :

参考 Cache Storage Api 文档

当中介绍到Cache Storage限制使用问题:

原文:

翻译:

当中介绍到Cache Storage接口限制仅在HTTPS中使用,如果使用HTTPS部署WebAssembly项目第二次加载无需加载程序集,只需要等待WebAssembly预热完成,基本上在1.5s左右(因电脑而已 i7 11代CPU测试,因为WebAssembly会使用本机性能所以会因为电脑性能导致加载时间过长)

优化第一篇参考:

如何将WebAssembly优化到1MB?

来自token的分享

与如何优化线上WebAssembly相似的内容:

如何优化线上WebAssembly

如何优化线上WebAssembly WebAssembly部署使用 HTTPS : 为什么?我可以通过一个案例查看 ,下面我们会通过masa docs站点进行测试 打开 http://docs.masastack.com/blazor/getting-started/installation 网站

压榨数据库的真实处理速度

引子 你了解你们线上数据库的真实处理速度吗?请认真思考半分钟再回答。 我先来回答一下:的确知道,因为我特别关注这块内容,咨询过DBA同学。其他朋友欢迎在评论区留言,大家一起探讨。 为什么会突然提出这样一个问题呢,因为前几天看到一篇文章是讲电商系统中如何优化库存预占能力,文中提到:“经压测数据验证,仅

太坑了吧!一次某某云上的redis读超时排查经历

一次排查某某云上的redis读超时经历 性能排查,服务监控方面的知识往往涉及量广且比较零散,如何较为系统化的分析和解决问题,建立其对性能排查,性能优化的思路,我将在这个系列里给出我的答案。 问题背景 最近一两天线上老是偶现的redis读超时报警,并且是业务低峰期间,甚是不解,于是开始着手排查。 以下

MySQL性能优化浅析及线上案例

关于数据库的性能优化其实是一个很复杂的大课题,很难通过一篇帖子讲的很全面和深刻,这也就是为什么我的标题是‘浅析’,程序员的成长一定是要付出代价和成本,因为只有真的在一线切身体会到当时的紧张和压力,对于一件事情才能印象深刻,但反之也不能太过于强调代价,如果可以通过一些别人的分享就可以规避一些自己业务的问题和错误的代价也是好的。

【产研测类】线上问题处理机制

1 概述 本规范致力于优化运营与产研团队在线问题管理的效率与效果,全面覆盖生产问题的识别、处理机制、分类分级、责任归属和明确奖惩机制。同时,侧重资源重点解决主流程关联的核心模块生产问题。如此,确保各个环节责任到人,内容详实,助力团队高效协同。 2 线上问题 2.1 线上问题定义 在互联网产品研发、运

[转帖]实现 10 倍应用性能提升的 10 个技巧

https://my.oschina.net/u/5246775/blog/5981861 Web 应用性能优化迫在眉睫。线上经济活动份额不断增长,发达世界的互联网经济已占经济总量的 5% 以上(请参见下文的互联网统计数据来源)。在这个始终在线、超级互联的现代世界,用户的期望已经今非昔比。如果您的网

[转帖]性能调优——小小的log大大的坑

https://segmentfault.com/a/1190000042434642 引言 “只有被线上服务问题毒打过的人才明白日志有多重要!”我先说结论,谁赞成,谁反对?如果你深有同感,那恭喜你是个社会人了:) 日志对程序的重要性不言而喻,轻巧、简单、无需费脑,程序代码中随处可见,帮助我们排查定

[转帖]kubelet 原理解析五: exec的背后

https://segmentfault.com/a/1190000022163850 概述 线上排查pod 问题一般有两种方式,kubectl log或者kubectl exec调试。如果你的 log 写不够优雅,或者需要排除网络问题必须进容器,就只能 exec 了。 # 在pod 123456-

如何优化大场景实时渲染?HMS Core 3D Engine这么做

在先前举办的华为开发者大会2022(HDC)上,华为通过3D数字溪村展示了自有3D引擎“HMS Core 3D Engine”(以下简称3D Engine)的强大能力。作为一款高性能、高画质、高扩展性的3D引擎,3D Engine不仅能通过实时光追、水体渲染、体积云雾、多维GPU粒子系统等技术还原真

[转帖]如何在 60秒内优化提升 Linux 性能?只有 2% 的人知道,还不快来学习~

https://bbs.huaweicloud.com/blogs/379243 【摘要】 如何在 60秒内优化提升 Linux 性能?只有 2% 的人知道 当你发现 Linux 服务器上的系统性能问题,在最开始的 1 分钟时间里,你会查看哪些系统指标呢? Netflix 在 AWS 上有着大规模的