电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

ChromeV8引擎中的Javascript数组实现分析与性能优化VIP免费

ChromeV8引擎中的Javascript数组实现分析与性能优化_第1页
1/5
ChromeV8引擎中的Javascript数组实现分析与性能优化_第2页
2/5
ChromeV8引擎中的Javascript数组实现分析与性能优化_第3页
3/5
计算机与现代化2014年第10期JISUANJIYUXIANDAIHUA总第230期文章编号:1006-2475(2014)10-0066-05收稿日期:2014-07-28作者简介:刘旭(1982-),男,四川遂宁人,SAP中国研究院商务智能软件部工程师,学士,研究方向:数据可视化,用户数据的聚合、展现,人机交互及性能优化。ChromeV8引擎中的JavaScript数组实现分析与性能优化刘旭(SAP中国研究院商务智能部,上海201203)摘要:随着实际应用中JavaScript程序的复杂度日益提高,程序执行的性能问题变得突出,而优化JavaScript程序中数组的使用方式可以提高程序效率。通过分析JavaScript数组的特点,结合广泛应用的ChromeV8引擎的源程序,描述V8对JavaScript数组的实现细节,重点分析FastElements和DictionaryElements两种数组存储模式,给出对JavaScript数组性能优化的基本原则,并举例分析4个实际应用中可以优化的程序片段。关键词:V8;Chrome;JavaScript;数组;性能;优化中图分类号:TP312;TP314文献标识码:Adoi:10.3969/j.issn.1006-2475.2014.10.016ImplementationAnalysisandPerformanceOptimizationforJavaScriptArrayinChromeV8LIUXu(DepartmentofBusinessIntelligenceofSAPLabsChina,Shanghai201203,China)Abstract:WiththecomplexityofJavaScriptapplicationsincreasing,performanceissuesofJavaScriptbecomeincreasinglypromi-nent,buttooptimizetheuseofJavaScriptarraycanimproveprogramefficiency.Thispaper,byanalyzingthecharacteristicsofJavaScriptarraysandreviewingthesourcecodeofChromeV8JavaScriptengine,describestheimplementationdetailsforJavaS-criptarrayinV8,andfocusesontheFastElementsandDictionaryElementsarraystoragemodes.Italsogivesthebasicprinci-plesofperformanceoptimizationofJavaScriptarrayandfourexamplestoshowhowtoanalyzeandoptimizeprogramsinpracticalapplications.Keywords:V8;Chrome;JavaScript;array;performance;optimization0引言作为一种动态的,弱类型的,兼具面向对象和函数式编程风格[1]的编程语言,JavaScript已经成为Web应用开发事实上的标准,所有的现代Web浏览器均包含了JavaScript引擎。由于JavaScript在执行时一般并不会先编译为二进制文件,随着使用JavaS-cript编写的程序规模越来越大,JavaScript程序的执行性能问题逐渐变得越来越突出,不理想的时间性能往往制约了JavaScript的进一步应用。在Web应用程序的开发和使用中,GoogleChrome浏览器是最流行的几种Web浏览器之一[2]。ChromeV8引擎(以下简称V8)是Chrome浏览器中使用的JavaScript引擎,它同时也可以作为独立的JavaScript引擎应用于其他程序中。V8是用C++编写的,基于对商业友好的NewBSD开源协议发布[3-4],其设计目的是高速执行大型JavaScript应用程序。V8使用了一系列独有的技术以提高JavaScript的执行性能,比如在JavaScript程序首次运行时将其直接编译为机器代码,不使用中间字节码解释执行[5]。数组是JavaScript语言的一项基本功能,几乎每个JavaScript应用程序中都会大量应用数组。由于V8的源程序公开,其运行机制可以通过分析其源程序来深入了解。通过分析JavaScript数组在V8中的实现,可以在编写JavaScript程序时明显提高程序性能。本文在分析中所使用的Chrome浏览器版本号为35.0.1916.114,V8引擎源码为2014年5月30日的trunk分支版本。1JavaScript数组的特点在很多高级语言中都实现了数组,C语言里面的2014年第10期刘旭:ChromeV8引擎中的JavaScript数组实现分析与性能优化67数组是一个典型实现,其特点是一组有序数据的集合[6],用索引表示数据的序号,数组中的每一个元素都属于同一个数据类型。C语言中的数组长度是定义时指定的,数组不能动态扩展长度。JavaScript作为一种现代程序设计语言,对象是基本的数据类型。对象实际上是一种把很多值聚合在一起的方式,可以看作是属性名到值的映射。而JavaScript语言中的数组实际上是对象的特殊形式,即属性名是整数的对象。JavaScript数组也可以看作值的有序集合,元素的位置即索引。JavaScript数组长度是动态的,在创建数组时无...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

ChromeV8引擎中的Javascript数组实现分析与性能优化

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部