<menuitem id="gc5xj"><track id="gc5xj"></track></menuitem>
  • <dl id="gc5xj"><ins id="gc5xj"></ins></dl>
              1. <dl id="gc5xj"></dl>

                <dl id="gc5xj"></dl>

                <li id="gc5xj"><ins id="gc5xj"></ins></li>

                1. <output id="gc5xj"></output><dl id="gc5xj"><ins id="gc5xj"></ins></dl>
                    <dl id="gc5xj"></dl>

                        <dl id="gc5xj"><ins id="gc5xj"></ins></dl>

                        <dl id="gc5xj"></dl>

                          JS 引擎 V8 发布 v7.4,性能又大幅提高了

                          发表于:2019-3-29 10:59  作者:h4cd   来源:开源中国

                          字体: | 上一篇 | 下一篇 |我要投稿 | 推荐标签: java

                            JavaScript 引擎 V8 发布了 7.4 版本,目前处于 beta 阶段,正式版将于几个星期后与 Chrome 74 Stable 一起发布。
                            此版本带来了一些新特性,并极大提升了性能。
                            JIT-less V8
                            V8 现在不需要运行时分配可执行内存就可以执行 JavaScript,关于这个新特性的具体细节,之前我们有报导过:V8 新机制:JIT-less 模式。
                            WebAssembly Threads/Atomics
                            在非 Android 操作系统上启用了 WebAssembly Threads/Atomics,可以通过 chrom://flags/#enable-webassembly-threads 在 Chrome 中启用此功能。
                            此特性可以通过 WebAssembly 解锁用户计算机上多核的使用,从而在 Web 上实现新的、计算量大的用例。
                            性能提升
                            参数不匹配的调用速度更快
                            JavaScript ?#24615;?#35768;调用函数时参数的数量与定义时不同的情况,不管是参数少了还是多了都完全?#34892;В?#21516;时 JavaScript 函数可以通过参数对象、rest 参数等方式获取?#23548;?#21442;数。因此,JavaScript 引擎中必须提供一种获取?#23548;?#21442;数的方法,在 V8 中,这是通过一种称为参数自适应的技术完成的。
                            参数自适应可以获取?#23548;?#21442;数,但却是以性能为代价的,而这种性能损耗在现代前端和中间件框架中通常是没法避免的,因为有太多 API 具有可选参数或可变参数列表了。
                            V8 7.4 版本中带来了一项新特性解决了这一问题。
                            在某些情况下,比如当被调用的是?#32454;?#27169;式的函数时,既不使用参数也不使用 rest 参数,这时候就完全不需要去进行参数自适应。现在 V8 在这种情况下就直接跳过这一自适应过程,将调用开销减少了超过 60%。
                            改进了原生访问器性能
                            Angular 团队发现,在 Chrome 中直接通过各自的 get 函数调用 DOM 属性访问器之类的原生访问器,比单态(monomorphic)甚至是综合态(megamorphic )属性访问要慢得多。这是因为在 V8 中使用慢速路径通过 Function#call() 调用 DOM 访问器,而不是已经存在属性访?#23454;目?#36895;路径。
                            此版本中提高了调用原生访问器的性能,使其比综合态属性访问快得多,效果如下:
                            解释器性能
                            在 Chrome 中,下载大脚本时是在 worker 线程上以流进行解析的,此版本修复了一个源流中用自定义 UTF-8 进行解码的问题,修复后使得流式解析性能平均快了 8%。
                            还在 V8 预解析器中发现了另一个问题:worker 线程中属性名被不必要地重复。删除这些重复数据后将流式解析器性能提高了 10.5%。
                            内存减少
                            字节码 flush
                            从 JavaScript 源码编译的字节码占据了很大一部分 V8 堆空间,通常约为 15%,包括相关的元数据。但是?#34892;?#22810;函数只在初始化期间执行,或者在编译后很少使用,这显然是一种浪?#36873;?/div>
                            为了减少 V8 的内存开销,此版本实现了一项字节码 flush 新功能,即如果已编译的字节码最近没有被执行,那么在 GC 期间将从函数中将其清除。为了实现这一点,V8 会跟踪函数节码的年龄,在 GC 期间递增年龄,并在执行函数时将其重置为零。任何超预设“老化阈值”的字节码的内存都会被下一个垃圾回收器收走,并且如果将来再次执行该函数,它将重新编译其字节码。
                            该字节码 flush 功能为 Chrome 用户节省了大量内存,将 V8 堆中的内存量减少了 5-15%,同时不会降低性能或显着增加编译 JavaScript 代码所花费的 CPU 时间。
                            此外还有 JavaScript 私有类字段、V8 API 等改进,详情查看发布公告。

                                上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。

                          【调查报告】你以为的测试行业现状,其实是这样的!

                          评 论



                          建议使用IE 6.0以上浏览器,800×600以上分辨率,法律顾问:上海瀛东律师事务所 张楠律师
                          版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2019, 沪ICP备05003035号
                          ?#31471;?#21450;意见反馈:[email protected]; 业务联系:[email protected] 021-64471599-8017

                          沪公网安备 31010102002173号

                          51Testing官方微信

                          51Testing官方微博

                          扫一扫 测试知识全知道

                          <menuitem id="gc5xj"><track id="gc5xj"></track></menuitem>
                        1. <dl id="gc5xj"><ins id="gc5xj"></ins></dl>
                                    1. <dl id="gc5xj"></dl>

                                      <dl id="gc5xj"></dl>

                                      <li id="gc5xj"><ins id="gc5xj"></ins></li>

                                      1. <output id="gc5xj"></output><dl id="gc5xj"><ins id="gc5xj"></ins></dl>
                                          <dl id="gc5xj"></dl>

                                              <dl id="gc5xj"><ins id="gc5xj"></ins></dl>

                                              <dl id="gc5xj"></dl>

                                                黑龙江快乐10分软件
                                                <menuitem id="gc5xj"><track id="gc5xj"></track></menuitem>
                                              1. <dl id="gc5xj"><ins id="gc5xj"></ins></dl>
                                                          1. <dl id="gc5xj"></dl>

                                                            <dl id="gc5xj"></dl>

                                                            <li id="gc5xj"><ins id="gc5xj"></ins></li>

                                                            1. <output id="gc5xj"></output><dl id="gc5xj"><ins id="gc5xj"></ins></dl>
                                                                <dl id="gc5xj"></dl>

                                                                    <dl id="gc5xj"><ins id="gc5xj"></ins></dl>

                                                                    <dl id="gc5xj"></dl>

                                                                      <menuitem id="gc5xj"><track id="gc5xj"></track></menuitem>
                                                                    1. <dl id="gc5xj"><ins id="gc5xj"></ins></dl>
                                                                                1. <dl id="gc5xj"></dl>

                                                                                  <dl id="gc5xj"></dl>

                                                                                  <li id="gc5xj"><ins id="gc5xj"></ins></li>

                                                                                  1. <output id="gc5xj"></output><dl id="gc5xj"><ins id="gc5xj"></ins></dl>
                                                                                      <dl id="gc5xj"></dl>

                                                                                          <dl id="gc5xj"><ins id="gc5xj"></ins></dl>

                                                                                          <dl id="gc5xj"></dl>

                                                                                            福彩黑龙江快乐十分走势图 成都足彩投注站 湖北快三怎么玩稳赚 西甲足球赛 嗷嗷待哺猜围棋术语 湖北十一选五开奖结果走势图 体育彩票销售点加盟 一波中特网站 湖北22选5开奖结果 江西多乐彩开奖号码 天津十一选五期 幸运飞艇官网开奖直播 快乐扑克山东开奖结果 32张牌九的玩法 福彩深圳风采走势图大星