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

但是,如果您使用的语言性能比其他语言差,那么即使是很好的算法 Select 也可能很慢.

有没有比较硬数据,Objto-C到C++,特别是iPhone上,但可能只是在Mac桌面上,用于各种类似语言方面的性能?我对this article comparing C and Objective-C非常熟悉,但这是一个比较两种面向对象语言的更大问题.

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

我要的是hard data,不是福音派.像你们中的许多人一样,出于各种原因,我既爱也恨两种语言.此外,如果有人在积极追求同样的东西,我会很有兴趣在一些代码中投稿,看看最终的结果,我相信其他人也会提供帮助.我的猜测是,它们都有优点和缺点,我的目标是准确地找出它们是什么,以便在现实世界中避免/利用它们.

推荐答案

Mike Ash有一些硬的数字来执行各种ObjtoC方法调用,而C和C++在他的文章"Performance Comparisons of Common Operations"中.还有this post

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

Objective-c相关问答推荐

通过指针算术访问数组值与 C 中的下标

UITabBar 中的自定义 colored颜色

禁用手势识别器

Objective C for循环中断并继续

在 UITableViewCells 上显示复制弹出窗口的简单方法,如地址簿应用程序

单元测试私有方法 - 目标 C

NSPredicate 与整数比较

将长格式的 NSString 拆分为多行

如何在 iOS SDK 中使用语音识别?

混合 Objective-C 和 C++

Objective-C 方法中的静态变量是否跨实例共享?

iOS框架改变一个属性(例如宽度)

在 Objective-C/cocoa 中创建文件夹/目录

在Objective-C中替换字符串中的多个字符?

访问当前视图的父视图 - iOS

为什么 NSOrderedSet 不继承自 NSSet?

在 Objective C 中使用 extern

-[MyClassName copyWithZone:] 无法识别的 Select 器发送到实例

iPhone SDK:如何在视图中播放视频?而不是全屏

在 Xcode 中制作 RGB colored颜色