c++ - 如果我将 Objective-C 用于低级代码,我的 iPhone 应用程序会受到性能影响吗?

标签 c++ iphone objective-c performance optimization

在 iPhone 或其他可移植硬件上编写 CPU 密集型或 GPU 密集型应用程序时,您必须做出明智的算法决策以加快代码速度。

但是,如果您使用的语言比另一种语言表现更差,那么即使是出色的算法选择也会很慢。

是否有任何比较 Objective-C 和 C++ 的硬数据,特别是在 iPhone 上,但可能只是在 Mac 桌面上,用于各种类似语言方面的性能?我很熟悉this article comparing C and Objective-C ,但这是比较两种面向对象语言的更大问题。

例如,C++ vtable 查找真的比 Obj-C 消息快吗?快多少?线程、多态性、排序等。在我着手构建一个具有重复对象模型和各种测试代码的项目之前,我想知道是否有人已经这样做了,结果在哪里。这种类型的测试和比较本身就是一个项目,可能需要相当长的时间。也许这不是一个项目,而是两个,并且只有输出可以比较。

我在寻找硬数据,而不是传福音。像你们中的许多人一样,出于各种原因,我喜欢和讨厌这两种语言。此外,如果有人在那里积极追求同样的事情,我会很有趣地投入一些代码来查看最终结果,我相信其他人也会提供帮助。我的猜测是它们都有优点和缺点,我的目标是准确地找出它们是什么,以便在现实世界的场景中可以避免/利用它们。

最佳答案

Mike Ash 在他的帖子 "Performance Comparisons of Common Operations" 中对各种 Objective-C 方法调用相对于 C 和 C++ 的性能给出了一些硬性数据。 .另外,this post 在谈到使用 Objective-C++ 调整 iPhone 应用程序的性能时,Savoy Software 是一本有趣的读物。

比起 Objective-C++,我更喜欢 Objective-C 简洁、描述性的语法,并且没有发现语言本身是我性能瓶颈的根源。我什至倾向于做一些我知道会牺牲一点性能的事情,如果它们让我的代码更易于维护的话。

关于c++ - 如果我将 Objective-C 用于低级代码,我的 iPhone 应用程序会受到性能影响吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/926728/

相关文章:

c++ - 在 C++ 中编写复制构造函数和赋值运算符的 list

iphone - 更改拨动开关颜色

iphone - if(self = [super init]) - LLVM 警告!你是怎么处理的?

iphone - 在 iPhone 上运行我的应用程序时图像模糊

mysql - objective-c:创建服务器方法

objective-c - 如何在 uitableviewcell 外添加图像

c++ - 为什么优化没有发生?

c++ - 我应该使用全局变量吗?

c++ - 计算编译时数组时编译器相关错误

iphone - 是否可以通过互联网在两个移动设备(iPhone)之间连接一个套接字?