
Meta发布内部开发以增加网页应用程序稳定性,大幅减少50%网页OOM崩溃的JavaScript内存泄露侦测工具MemLab。MemLab为一个自动侦测内存泄露的JavaScript内存测试框架,能够找到并解决内存泄露的根本原因,改善网页应用程序品质提高用户的使用体验。
Meta在2020年的时候,将Facebook.com重新设计成单页应用程序,而该应用程序大部分的渲染和导航,皆使用客户端JavaScript,同样Meta也用类似的架构设计包括Instagram和Workplace等其他网页应用程序,但Meta提到,这种架构虽然可以提供用户更顺畅的互动体验,使网页更有应用程序的感觉,但在客户端维护网页应用程序的状态,会让管理客户端内存的工作变得复杂。
通常用户可以立刻发现应用程序的功能错误或是性能问题,而内存泄露并不会被立刻发现,但是会因为每次占用一块内存,在累计之后,导致整个网页应用程序在后续逐渐变慢。
之前Meta分析Facebook.com的内存使用,发现客户端的内存使用量,以及OOM崩溃的次数,皆持续攀升,而根据他们的研究,高内存使用量带来许多负面影响,包括降低页面加载和互动性能,并且进一步影响各项用户参与指标。
官方提到,事实上内存泄露通常不明显,因此也很难在开发过程或程序代码审查的时候被发现,甚至很难在生产环境中找到根本原因,虽然主流的JavaScript Runtime都有垃圾回收器,但是内存泄露仍可能存在,JavaScript程序代码会因为隐藏对象参照而出现内存泄露,且会在许多意想不到的地方出现。
或是在部分情况下,以技术上来说并不属于内存泄露,只是因为应用程序内存使用线性增长没有被限制,Meta表示,这种情况最常发生的原因,是客户端缓存没有内置驱逐逻辑,无限卷动列表没有虚拟化功能,因此无法在添加新内容时,从列表删除较早的项目。
过去Meta并没有自动化系统和流程来控制内存使用,因此要降低内存使用和泄露,就只能定期请专家通过Chrome DevTools来挖掘内存泄露的问题,但因为现在应用程序更改的次数非常频繁,导致这个办法没有办法扩大规模执行。
因此Meta创建了MemLab来解决这个问题,JavaScript内存测试框架MemLab能够自动进行泄露侦测,使开发者更容易发现内存泄露的根本原因,Meta成功控制失控的内存增长问题,不只发现更多产品和基础设施中内存泄露的情况,也找到许多内存优化的机会。
现在Meta已经在GitHub上开源MemLab,并希望与JavaScript社群合作,而其他开发者也已经能够下载MemLab,改进应用程序内存使用。
相关推荐: CG承接头程海运吗?(wayfair运营难题QA连载96)
最前沿的wayfair运营难题QA连载96 Q:我们从中国发往CG仓的话,是不是要先被邀请参加CastleGate Forwarding services?没有被邀请是不是无法从中国发货到CG仓的?只能通过海外仓的形式发过去么? A:你可以创建SPO后开tic…
码刀科技(www.lekshop.cn)是国内知名企业级电商平台提供商,为企业级商家提供最佳的电商平台搭建(多种模式电商平台搭建:B2B/B2B2C/B2C/O2O/新零售/跨境等)、平台管理系统开发及互联网采购解决方案服务, 联系客服了解更多.