写点什么

Swift 并不像苹果说的那么快:第一次基准测试

  • 2014-06-13
  • 本文字数:873 字

    阅读完需:约 3 分钟

性能是苹果声称新编程语言Swift 将带给OS X 和iOS 开发人员的好处之一。然而,由独立开发者执行的第一次实验和基准测试显示,Swift 在某些场景的性能并不如人意。

开发人员 Jukka Suomela 在 Stack Overflow 发表了一篇帖子说明他的发现。当用 Swift 实现一个算法时,他注意到其性能非常差。深入分析后,Jukka 最终发现代码的主要瓶颈来自一个数组排序这样的简单任务。

事实上,Swift 对 100 万个随机整数的数组进行排序,需要耗时 6 秒,而 C++ 只用了 0.06 秒,Python 为 0.6 秒。这些测试使用的是 -O3 编译优化级别,这是 Xcode 发布构建时常用的级别。Jukka 说,如果禁用所有编译优化,即对应于 Xcode 调试构建的 -O0,上述测试用了 88 秒。

Stack Overflow 上回复该帖的其他开发人员证实了 Jukka 的发现。开发人员 sjeohp 用 Swift 实现快速排序算法时,发现如果不启用编译优化(-Onone)会比C 慢1000 倍。另一方面,他发现当强制积极的编译优化(-Ofast)时,Swift 比C 稍快。Stack Overflow 的另一个帖子描述了图像处理测试,也强调了类似的研究结果。

根据 LLVM 文档,积极优化忽略了严谨的标准规范。-Ofast 启用了所有 -O3 优化并开启了 -ffast-math,后者放宽了 IEEE 或 ISO 的数学函数规范,可能导致那些应该具有规范保证的程序产生不正确的输出。此外,-Ofast 禁用了整型溢出和数组下标越界的检查,因此降低了 Swift 的安全特性。

Jukka 进行了深入分析,他在编译器对另一个测试所生成的汇编代码中,发现一个数组的简单循环产生了大量的内存管理调用(保留和释放),而这是完全没有必要的。这个测试没有涉及数学,因此主要的性能瓶颈似乎来自这些无用的调用。

数名开发人员指出 Swift 仍然处于 Beta 状态,这可能是 Swift 当前这种行为的最好解释。具体来说,文中提到的毫无必要的释放 / 保留调用暗示了ARC 优化存在一些Bug,可能不需要积极优化就可以修复

因为该语言仍处于Beta 状态,苹果不会允许开发者提交Swift 开发的应用进行审查。 Xcode 的最终版本预计在今年秋天发布

查看英文原文: Swift Might Not Be As Fast As Apple Claims It To Be: First Benchmarks

2014-06-13 09:384221

评论

发布
暂无评论
发现更多内容

多个云平台,撑着零售消费企业们向上爬坡中

ToB行业头条

Nginx配置Websocket

EquatorCoco

HTTP websocket 协议解析

cad2024 mac版更新 最新AutoCAD 2024中文破解版下载

iMac小白

OmniGraffle Pro for mac(思维导图软件)v7.22.4激活版

mac

苹果mac Windows软件 OmniGraffle Pro 图形设计工具

MySQL大表设计

EquatorCoco

MySQL 数据库 数据库云

低代码PaaS开发平台

树上有只程序猿

低代码 PaaS 私有化部署

软件测试/测试开发丨人工智能时代软件测试的变化

测试人

人工智能 软件测试

火山引擎ByteHouse:如何优化ClickHouse物化视图能力?

字节跳动数据平台

数据库 大数据 云原生

CleanMyMac X for mac下载 优化清理软件

iMac小白

如何在淘宝的item_search_seller API中获取店铺列表?

技术冰糖葫芦

API 文档

IT打工人避雷针!华为云这款轻量应用服务器是网站开发“神器”

YG科技

idea如何新建一个多模块的springCloud项目

javaNice

Java SpringCloud

HarmonyOS NEXT如何解决不同多媒体技术开发难题

Geek_2d6073

干货丨小程序开发秘籍,华为云这款服务器才是真香系列

YG科技

跨境选品工具推荐|这些选品神器,跨境卖家都在用!

Geek_ccdd7f

PDF Expert for mac(pdf编辑工具) v3.7.1永久激活版

mac

PDF Expert 苹果mac Windows软件 PDF编辑和阅读工具

JD-GUI 反编译jar包

javaNice

Java

悦数图数据库 v3.6.0 发布:支持 Zone 管理,提升业务安全性和连续性

悦数图数据库

图数据库 悦数 杭州悦数

为中小企业发展按下“提速键”,华为云这款轻量应用服务器成双11爆款

YG科技

阿里云崩溃损失大?华为云耀云服务器L实例为企业保驾护航

YG科技

pdf增强插件Enfocus PitStop Pro 2020 for Mac下载

iMac小白

剧情继续:马斯克曝出OpenAI前员工举报信,董事会与奥特曼谈判回归

Openlab_cosmoplat

低代码:数字化转型趋势下的快速开发方式

互联网工科生

低代码 数字化

HashMap HashTable ConcurrentMap 中key value是否可以为null

javaNice

Java

人工成本高企?华为云耀云服务器L实例打通企业网站开发最后堵着

YG科技

一个工具让你明白“万丈高楼平地起”,拒绝重复造轮子!

伤感汤姆布利柏

编程 程序员 前端 低代码

和鲸携手暨大经管,为复合型、应用型数据人才培养工作提供最佳实践

ModelWhale

人工智能 数据分析 经管 交叉学科 暨南大学

杭州悦数出席 2023 云栖大会计算巢专场,分享云上最佳实践

悦数图数据库

数据库 图数据库 悦数 杭州悦数

小程序开发“巨坑”多,华为云这款轻量应用服务器轻松避坑

YG科技

如何获取item_search_guang API中与“爱逛街”相关的API接口?

技术冰糖葫芦

API 文档

引爆双11消费新热潮!华为云高性能轻量应用服务器“C位”耀眼

平平无奇爱好科技

Swift并不像苹果说的那么快:第一次基准测试_Android/iOS_Sergio De Simone_InfoQ精选文章