JavaScript 死代码的识别、消除与实证评估
软件工程
2023-09-01 v1
摘要
Web 应用由 HTML、CSS 和 JavaScript 组合构建。在构建现代 Web 应用时,通常使用第三方库和框架以提高开发者的生产力与代码质量。除这些好处外,采用此类库会导致 JavaScript 死代码的引入,即实现未使用功能的代码。下载和解析死代码的开销会对 Web 应用的加载时间和资源使用产生负面影响。我们研究的目标有两点。首先,我们提出 Lacuna,一种用于自动检测并消除 Web 应用中 JavaScript 死代码的方法。所提方法支持静态与动态分析,可扩展,并可应用于任何 JavaScript 代码库,且不对编码风格或特定 JavaScript 构造的使用施加限制。其次,借助 Lacuna 我们开展实验,以实证评估 JavaScript 死代码在移动 Web 应用背景下于能耗、性能、网络使用和资源配置方面的运行时开销。我们在由第三方开发者独立开发的 30 个移动 Web 应用上各四次应用 Lacuna,每次根据 Lacuna 提供的不同优化级别消除死代码。随后,Web 应用的每个不同版本均在 Android 设备上执行,同时收集度量以评估死代码引起的潜在运行时开销。实验结果尤其强调,移除 JavaScript 死代码对移动 Web 应用的加载时间有正向影响,同时显著减少了通过网络传输的字节数。
引用
@article{arxiv.2308.16729,
title = {JavaScript Dead Code Identification, Elimination, and Empirical Assessment},
author = {Ivano Malavolta and Kishan Nirghin and Gian Luca Scoccia and Simone Romano and Salvatore Lombardi and Giuseppe Scanniello and Patricia Lago},
journal= {arXiv preprint arXiv:2308.16729},
year = {2023}
}