论文部分内容阅读
当前,脚本语言的执行速度是限制网络应用进一步发展的主要因素之一。JavaScript作为网络编程中主要使用的脚本语言,其性能提升对开发计算密集型Web应用意义重大。目前,针对JavaScript引擎优化的研究已经很多,而针对JavaScript语言本身的并行化性能提升却仍未出现完善的解决方案。本文针对这一新兴领域,从不同角度进行了研究与探索,对提高浏览器性能具有重要的实际意义。本文首先介绍了JavaScript语言的特点与并行化编程的方法,并详细介绍了Chromium浏览器的多线程架构与沙箱机制。接着,本文以Chromium浏览器为载体,通过在WebKit引擎中新增模块的方式,设计并实现了基于WebKit的JavaScript并行化扩展,在JavaScript层进行函数解析和翻译,在C++层调用OpenCL库进行并行计算,并通过IDL语言将模块绑定到V8引擎。同时,本文针对网络语言的安全性和兼容性需求,对系统流程进行了调整与优化,在渲染进程启动初期完成环境预配置工作,以满足Chromium的沙箱模型,避免恶意代码的攻击;并对OpenCL链接库采用动态加载方式,设计了完善的容错机制,确保系统能在不同的平台上编译与使用。在实现了JavaScript并行扩展后,本文对JavaScript引擎内部机制进行了分析,基于V8引擎本身从另一角度进行了探索,设计了在V8内部实现JavaScript并行机制的整体框架与流程,改进了并行接口并设计了合适的数据分解模式。此外,本文为V8引擎增加了线程池模块,实现了主从线程的同步协作,并通过延迟创建线程的方式避免了不必要的系统开销。最后,本文针对实现的JavaScript并行系统,通过实际的JavaScript程序进行了性能测试,并详细分析了处理器核心数目、数据规模、运行次数以及程序自身可并行程度对JavaScript并行化性能提升的影响,最后给出了本文实现的并行系统的使用场景。本文实现的JavaScript并行化系统,能够显著提高计算密集型JavaScript程序的运行速度,帮助开发者编写具备更复杂能力的Web应用,提高用户体验,具有一定的实用价值。