iPhone XS JavaScript性能飙升背后的秘密「建议收藏」

iPhone XS JavaScript性能飙升背后的秘密「建议收藏」iPhone XS JavaScript性能飙升背后的秘密

大家好,又见面了,我是你们的朋友全栈君。

对JavaScript性能基准测试的初步评估显示,iPhone XS和iPhone XS max的性能甚至超过了iMac Pro。基准测试使用了Speedometer 2.0,主要针对真实世界的数据帧加载场景进行了比较。

Ruby on Rails作者、Basecamp创始人兼首席技术官David Heinemeier Hansson在Twitter上发起了一个讨论:

在Speedometer 2.0 JavaScript基准测试中,iPhone XS比iMac Pro速度更快。这是我测试过的最快的设备。比iPhone 8/iPhone X芯片高出45%。苹果是如何做到这一点的?!

这条推文引发了关于如何实现这种性能改进的重要猜测。

curiosity.ai首席技术官Rafael Oliveira评论说,苹果似乎优化了他们的ARM JS编译器,远远超过Mac上的x86:

但这就是重点——苹果似乎并没有针对x86 Safari做那么多优化,但他们却在ARM JS编译器上花了大心思……并不是说他们的CPU不令人印象深刻,只是在进行JS基准测试时,差异似乎被夸大了。

软件工程师Greg Parker指出,最新的ARM指令集ARMv8.3-A针对JavaScript做了性能改进

ARMv8.3添加了一个从浮点数到整型的转换指令,超出范围的值按照JavaScript的方式处理。以前获取JavaScript语义的指令要慢得多。JavaScript的数字默认是双精度的,所以它需要进行很多转换。

ARM确实发布了很多称为更新,也就是ARMv8.3-A,包括对JavaScript数据类型转换的改进:

JavaScript的数字使用的是双精度浮点格式。但是,它需要将这种公共数字格式转换为32位整数,以便执行位操作。从双精度浮点数到整数的转换以及检查转换的数字是否真的是整数是很经常发生的。

ARMv8.3-A指令有助于将双精度浮点数转换为带符号的32位整数,以提高性能。

但事实证明,这并不是性能提升的原因,因为软件工程师Saam Barati解释说,iOS 12的Safari还没有利用这些指令

从初步报告以来,基于ARMv8.3-A指令的改进已经被用在了WebKit的Nightly构建版本中,并且预计将在Safari的未来版本中使用。Barati已经注意到了各种JetStream2测试结果的性能改进:

在stanford-crypto-aes提升15%
在stanford-crypto-pbkf2提升30%
在stanford-crypto-sha256上提升97%

总体而言,如果不支持ARMv8.3-A,预计这个修复将比当前版本的Safari增加0.5-2%的整体性能提升。

Anandtech的一份iPhone XS性能报告表明,新的内存子系统最有可能是JavaScript性能得到显著提升的原因:

内存子系统对403.gcc部分有效,对429.mcf、471.omnetpp、473.Astar和483.xalancbmk基本有效,A12性能也因此从30%提升到42%。很明显,新的缓存层次结构和内存子系统在这方面起到了很大作用,所以苹果能够在最近几代芯片上实现最重要的性能跳跃。

因此,尽管ARM改进对计算成本高昂的JavaScript运算很有用,但它们并不像内存子系统的改进那么重要。

因此,很多人都在问苹果何时将桌面电脑和笔记本电脑从英特尔转向ARM,这是否会带来与今天类似的性能改进?

查看英文原文The Story behind Very Fast iPhone XS JavaScript Performance

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/107173.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Reaver linux 安装教程

    Reaver linux 安装教程首先安裝:Reaver相關庫文件打開終端機:$sudoapt-getinstalllibpcap-dev$sudoapt-getinstalllibsqlite3-dev安裝Reaver1.4$sudoapt-getinstallsubversion#部署svn環境$cdDesktop$svncheckouthttp://reaver-wps.googlecode.co…

    2022年6月3日
    40
  • WebRTC直播技术方案「建议收藏」

    WebRTC直播技术方案「建议收藏」我们都知道,WebRTC是面向互联网的一种即时通信标准,由于被Chrome、火狐、Safari等主流浏览器支持,并提供了一致和简洁的API,使得开发WebRTC的视频通信应用非常简单和流行。在大多数情况下,我们认为双向视频通信技术和视频直播技术是两种不同的技术,一个做视频通话,一个做单向直播(在以往的直播方案中,绝大部分是采用rtmp协议做直播上行的)。有没有可能使用WebR…

    2022年7月21日
    20
  • hexo史上最全搭建教程[通俗易懂]

    花了几天搭建了个网站,先上链接,欢迎来访:fangzh的个人博客现在市面上的博客很多,如CSDN,博客园,简书等平台,可以直接在上面发表,用户交互做的好,写的文章百度也能搜索的到。缺点是比较不自由,会受到平台的各种限制和恶心的广告。而自己购买域名和服务器,搭建博客的成本实在是太高了,不光是说这些购买成本,单单是花力气去自己搭这么一个网站,还要定期的维护它,对于我们大多数人来说,实在是没…

    2022年4月8日
    221
  • 笔记本windows10连接wifi显示无internet_win10连接wifi显示无internet

    笔记本windows10连接wifi显示无internet_win10连接wifi显示无internetwin10笔记本连上WiFi,显示“无internet,安全”,本文提供了6种解决办法

    2022年8月1日
    3
  • NTP时间服务器搭建「建议收藏」

    1.yuminstallntpntpdate安装NTP服务器2.NTP服务器配置:修改配置文件vi/etc/ntp.conf3./etc/init.d/ntpdrestart重启服务4.ntpq-p查看状态5.date查看当前时间6.客户机同步时间ntpdatepool.ntp.org(pool.ntp.org为服务机ip地址,pool.ntp.o…

    2022年4月7日
    38
  • 104键盘按键图_键盘按键错乱怎么恢复

    104键盘按键图_键盘按键错乱怎么恢复104键键盘键位布局图**★主键盘区**A→65B→66C→67D→68E→69F→70G→71H→72I→73J→74K→75L→76M→77N→78O→79P→80Q→81R→82S→83T→84U→85V→86W→87X→88Y→89…

    2025年8月11日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号