基于静态分析和动态执行的JavaScript代码精简的研究与实现

来源 :北京邮电大学 | 被引量 : 0次 | 上传用户:gaokao4567
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
近年来,Web应用场景日趋丰富,应用功能也越来越复杂,许多网站都导入大型JavaScript库,以加快开发效率、增强用户体验。然而,许多JavaScript库在页面加载期间仅被部分利用,却被全部打包进捆绑包中。冗余的JavaScript代码增加了页面的权重,从而增加了下载、解析和编译JavaScript资源的时间。因此,优化JavaScript资源的有效负载以提高Web性能非常重要。而现有的模块化精简方案分析粒度大,导致函数粒度上仍存在大量的冗余。另外,静态分析难以识别JavaScript动态特性,动态分析又受限于测试覆盖率易发生误报,单独的分析类型不足以识别更为精准的冗余代码。针对以上问题,本文提出了结合静态结构分析和动态跟踪技术的混合分析方法来识别应用程序中的冗余代码,并实现了优化应用程序部署包大小的工具。主要研究成果体现在如下三个方面:(1)设计了一种多层级的静态分析结构来构建函数调用图,实现了函数粒度上的精简,细化了检测冗余代码的粒度。首先在模块层级,依据模块间的依赖关系对JavaScript文件进行分组,并对每个文件做了依赖路径分析,防止公共依赖的重复计算。其次在函数层级,以分组为单位,收集函数信息,分析调用关系,识别并报告了静态结构下的冗余函数调用。对比实验表明该静态分析结构能有效识别函数调用边并提高了检测精度。(2)提出了基于静态分析和动态执行的混合分析策略,提高了识别冗余函数的准确度。方案首先利用工具Jalangi进行动态插桩,并使用被动测量技术获取应用程序实际加载中JavaScript资源的使用情况,对静态分析难以识别的动态特性进行运行时轨迹收集,保证了代码覆盖范围。最后合并动静态结果生成混合函数调用图,识别图中根节点不可达的函数节点为冗余。(3)基于以上策略设计并实现JavaScript代码精简工具。该工具包括静态统计功能、动态插桩功能、冗余优化功能,并能对识别的冗余函数的函数体进行精简。对比实验结果表明,该工具简单有效,平均减少了部署包中28.59%的代码量,在保证代码健壮性的基础上,优化了应用程序加载性能。
其他文献
互联网技术的发展使得网络信息资源日益庞大。对于用户而言,海量的数据信息严重干扰其对信息的正确选择,因此信息利用率非常低。对于企业而言,满足用户个性化需求对其扩大用户规模具有不可替代的作用。推荐系统可有效解决信息过载问题,提供个性化服务,因此无论对于用户还是企业,个性化推荐系统的研究都具有重要的影响和意义。本文为获得更好的推荐性能,将强化学习方法应用到推荐算法中进行了研究,同时针对企业需求,设计和实
性能测试在通信设备的研发和生产中占据着重要的地位。在5G之前,OTA方法仅被应用于终端性能测试,基站的吞吐率性能通过将同轴电缆连接到基站端口的方式进行评估。对于5G时代的性能测试,由于基站集成度较以往大大提升,只有一体化的测试才能较好的评估其整体性能,传统的传导测试无法满足测试需求,因此对于5G OTA测试的研究,必须同时兼顾终端侧及基站侧。对终端侧的OTA测试,多探头微波暗室法(Multi-Pr
伴随着数字化时代的来临,各种硬件设备不断普及,社会上各大重要场合都安装了监控摄像头,这些监控摄像头组成了一个庞大而严密的监控网络,对企业、公司、社区的安防起到重要作用。目前人脸识别还是社区安防采用的主要技术。在监控场景中,由于光照,角度等问题,不是所有的情况都能拍摄到清晰的人脸,利用人脸识别来查询行人轨迹会导致行人轨迹不完整的情况。近些年比较火热的行人重识别技术是利用行人的图像来识别人物,该技术特
随着数字音乐产业的发展,歌单在音乐平台消费中扮演着越来越重要的角色。但目前大多热门歌单仍由人工创建,不仅耗时,还需音乐知识,因此需要一套生成系统来高效地创建歌单。这时主流的推荐算法在缺乏用户数据以及推荐新项目的情况下并不适用,而解决这类冷启动问题的办法一般是分析歌曲共有的语义属性,建立音乐与标签的关系。但对于语种、风格、场景、情感和主题等不同的标签,又存在着“语义鸿沟”等诸多难题,且以往人工设计的
移动边缘计算的出现使得终端的计算任务可以卸载到边缘侧的高性能服务器进行处理,大大提高了各种应用的表现,其中视频监控是边缘计算应用最广泛的场景。传统云模式下进行视频监测的计算和传输带宽负载较重,边缘计算能对视频监控系统进行时延和效率优化,但仍存在两大问题:一方面,目前国内外的相关研究大多集中在计算机视觉算法模型或整体框架的设计,仍停留在仿真或验证阶段,没有实际搭建一整套物联网系统并部署业务算法对比效
随着深度学习引入信息安全领域,原本陷入瓶颈的空间域图像信息隐藏和隐写分析学科又飞速发展起来,近几年涌现出多篇优秀研究成果。但是,由于深度学习的不可解释性和对数据集的依赖性,对于深度学习隐写分析算法来说,训练数据充足时,有关用于深度学习自动提取的隐写特征定量衡量的指标缺失,导致模型优化修改不够客观有量化指标;训练样本不充足时,未知隐写算法使用迁移学习训练过于主观,缺乏根据指标。因此,本文着眼于空间域
为应对流量增长和高速传输需要,下一代航空通信技术考虑在地空通信场景部署基于正交频分复用(Orthogonal Frequency Division Multiplexing,OFDM)技术的L频段航空通信系统(L-band Digital Aeronautical Communication System,L-DACS1),但航空信道的强多径、远距离、多普勒频移等特性容易引起严重的信道衰落,影响系
随着移动通信的不断发展,海量信息的传输,新兴的通信技术对高复杂度计算资源和低延迟约束的要求越来越高,计算密集型和时间敏感型应用的需求也日益苛刻。特别是在应急通信场景下,通信系统内小区宏基站的计算资源不足以支撑突发情况下激增的通信需求。同时移动终端设备本身计算资源和能耗也受到很大限制,仅仅依靠本地服务器很难在有限的时间内完成任务,恢复通信质量。边缘计算技术是5G移动通信的核心技术之一,通过部署边缘计
随着5G网络以及移动端设备的逐渐普及,人们对于移动数据流量的需求不断増加。对于网络运营商而言,提供不受阻碍、无处不在的高质量服务意义重大。如何建立准确的长周期预测基站小区网络流量的模型,以指导运营商扩容基站小区无线设备将是一个挑战。然而,基站小区网络流量的突发性和不确定性,所以基站小区网络流量具有非线性和非平稳性特点,这对于网络流量的长期预测是一个难题。同时基站小区流量预测也表现出一定的灵活性,以
手机屏幕作为手机的重要组成部分,成为了人机交互的主要窗口。但是由于生产过程中的诸多不确定因素,不可避免的会有存在瑕疵的屏幕被生产出来,所以对于屏幕质量的检测是不可或缺的。当前手机屏幕检测的主要方式是人工检测和传统机器视觉检测。人工检测的方式主观性比较强、易疲劳,不能很好地保证高效性和准确性;传统的机器视觉检测方法则存在特征提取能力差,兼容性低且普遍存在耗时较高的问题。针对以上问题,本文提出了以孪生