Swift vs Objective-C:应用性能

我正在做一些关于Swift的研究,它与Objective-C有所不同。 从我能收集到的信息来看,Swift的当前版本比Objective-C更快,速度更快: 请看这里 。

但是,由于这些testing大部分是通过sortingalgorithm来完成的,所以我想知道Swift在用于开发iOS应用程序时是否比Objective-C更快。 任何人都可以启发我,最好从他们自己的经验。

在Swift 1.2发布之后 , 有一篇关于Swift性能改进的博文 。

作者用不同types的代码(如Objc-like Swift代码,Swift only和Objective-c only代码)运行了几个testing。 结果是,Swift 1.2比以前快了很多。 他用JSON运行testing,因此比algorithm更实用。

除了“真实”的performance,我个人的经验是,我在Swift中开发起来容易得多。 我从不喜欢Objective-C的.h.m文件,因为它阻止了“编程stream程”。 另外,我认为Syntax本身比在Objective-C中[使用这些括号]要容易得多。

所以我认为,如果你从头开始写一个新的项目,Swift更容易,更快,更优雅。 (我的想法)

Swift被苹果声称要比Objective-C更快,正如你所说,在这样的sortingalgorithm中速度更快,但是对于iOS Developemnt的使用,一个简单的用户不会意识到在Swift或Objective- C。 我在Objective-C中开发了许多在苹果商店中的应用程序,现在有几个在Swift中,到目前为止,用户不知道其中一个比另一个快多less。

Swift不太可能导致运行速度比Objective-C中开发的应用程序快得多的应用程序。 尽pipe这两种语言退出了不同的版本,但都是针对相同的Cocoa和Cocoa Touch API,iOS和OS X a,都是静态types语言,都使用相同的LLVM编译器,所以它们没有什么不同。 会有性能差异,毕竟这两种语言并不完全相同,但不要指望有显着的差异。

Swift也是由苹果公司开发的,以吸引新的程序员,因为它与Ruby和Python等语言相比,它是Objective-C。

与Objective-C相比,Swift具有如下好处:Swift更容易处理string,Swift元组提供复合variables,而且编码人员不需要花费时间来注释带有types信息的variables和冒犯错误; 在大多数情况下,编译器可以根据variables的设置值来推断types。

你可以用任何语言编写慢代码,Swift也不例外。 我还没有时间来全面评估Swift 1.2 Beta,但是即使在大部分代码可以合理快速地完成之前,也很容易让它变得非常慢。 尤其是访问非final的实例方法非常慢,Debug的构build速度非常慢(我有几个比发布版本慢100倍的情况)。 为了优化最深层嵌套的循环,通常就足以快速地将其置于接近C性能的地方。

如果您可以将缓慢的操作移出主用户界面队列,则大部分您编写的代码不是性能至关重要的。 更多的时间将花在API调用上,这些不会被用来调用它们的语言所影响。 即使在性能至关重要的情况下,需要大量优化的代码量也会变小,您可以转换为更快的语言(例如C)。

在比较Objective-C时,也值得考虑Objective-C的含义。 你可以在Objective-C代码中编写C函数,并且它们的代码速度可以和C一样快。我会说它们是C,并且要有意义地谈论Objective-C的性能,它应该是基于Objective-C消息发送的代码,可能是NSArrays而不是原始的C数组。 如果这是Swift的基础(当优化和使用结构和最终的类)将会出现相当不错的。 但是,如果您正在与C代码进行比较,那么Swift通常会比较慢。

我有几篇关于在我的博客上优化Swift的博文 ,我在10月份做了一个简短的回复。

Swift比客观的c更快,这就是苹果团队所宣称的。 这当然是真的。 然而事实是,你必须计划很多事情来编写响应式应用程序。 几个指针
1)删除未使用的资源
2)优化资源为ex图像
3)caching
4)压缩
5)可重复使用的代码
6)对象生活pipe理