中文

Muzeel:一个用于当今 Web 中死代码消除的动态 JavaScript 分析器

软件工程 2021-06-17 v1

摘要

JavaScript 导致了当今 Web 日益复杂。为支持用户交互并加速开发周期,Web 开发者严重依赖大型通用第三方 JavaScript 库。这种做法通过引入页面未使用但被浏览器不必要地下载和处理的多余函数,增加了页面的规模与处理复杂度。本文对约 40,000 个网页的分析表明,中位数页面上 70% 的 JavaScript 函数是未使用的,消除这些函数将使页面大小减少 60%。受这些发现的启发,我们提出 Muzeel(阿拉伯语中意为“消除者”);一种用于消除给定网页中未使用的 JavaScript 函数(通常称为死代码)的方案。Muzeel 在页面加载时提取所有页面事件监听器,并使用一个触发这些事件的机器人来模拟用户交互,从而消除那些未被任何这些事件调用的函数的死代码。我们在多款 Android 手机和浏览器上的评估结果表明,在 3G 网络下,Muzeel 在低端与高端手机上分别使页面加载速度提升约 30% 和 25%。在相同网络下,它还将速度指数(一项重要的用户体验指标)在低端和高端手机上分别降低了 23% 和 21%。此外,Muzeel 在保持页面视觉内容与交互功能的同时,减少了整体下载大小。

关键词

引用

@article{arxiv.2106.08948,
  title  = {Muzeel: A Dynamic JavaScript Analyzer for Dead Code Elimination in Today's Web},
  author = {Tofunmi Kupoluyi and Moumena Chaqfeh and Matteo Varvello and Waleed Hashmi and Lakshmi Subramanian and Yasir Zaki},
  journal= {arXiv preprint arXiv:2106.08948},
  year   = {2021}
}

备注

13 pages, 8 figures