论文部分内容阅读
随着3G移动互联网技术、浏览器操作系统技术、动态网页技术的发展。浏览器逐渐成为这些新兴技术与客户交互的载体。浏览器的性能直接影响了这些技术的用户体验效果,所以高性能嵌入式浏览器技术越来越受到人们的关注。影响浏览器性能的因素有很多,其中JavaScript引擎的性能就是影响浏览器整体性能的最关键因素之一。随着JavaScript引擎的发展,出现了许多经典的JavaScript引擎,如Google公司的V8引擎、Webkit开源项目的SquirrelFish引擎、Mozilla FireFox浏览器中使用的各种JavaScript引擎等。这些引擎提出许多有效的优化方法。本课题研究的JavaScript引擎是基于SquirrelFish Extreme版本的,其将脚本全部编译为机器码再执行,有效地提升了引擎执行效率。但是将其应用于一些资源有限的嵌入式平台,其编译延时就成了引擎的重大性能瓶颈。所以本文采用了热点的思想,提出了一种热点代码引擎。考虑到嵌入式浏览器的特点,主要借鉴了Java Hotspot虚拟机中的热点思想。本文着重关注影响引擎执行效率的热点区域,结合JavaScript脚本分析了热点区域的分类、分布、以及一般特征,然后通过建立热点区域的特征范式模型对热点区域作了深入的研究。在此基础上又进一步建立了多种实现方案的热点区域探测模型。热点区域的探测根据不同的探测时机,可分为热点区域预探测和监控指令流程探测。前者能在引擎执行之前为引擎调整好执行代码。后者能在引擎执行的过程中,进一步挖掘出影响引擎执行效率的关键区域。对于探测的粒度,引擎不仅采用了传统的按热点区域块探测的思想,还使用了按热点执行线路探测的思想。引擎甚至进一步结合了这两种探测方式的优点,提出了一种混合模式。考虑到嵌入式浏览器的快速响应问题,引擎进一步从热点区域中划分出次热点区域。次热点区域是延后编译的,这缓和了嵌入式平台硬件资源紧张的问题。这不仅加速了引擎的响应速度,而且为平衡利用系统资源提供了一些探索方向。热点代码引擎对同一个问题往往有多种不同的解决方案。这些不同的方案就组成了引擎的策略库,供引擎的智能分析决策模块根据当前引擎的性能数据合理调用。这样引擎就能始终选择最佳的方案来动态应对变化的执行需求。最后引入多线程优化引擎的架构,作为对引擎并行处理能力的一种探索。