Obj-C和C++语言都只是在C上面的面向对象封装而已,都是通过转换为C再编译成机器码的,所以没有本质上的性能优势。当然,要说和编译成中间代码的Java以及其他脚本语言来比较,当然运行效率更高啦。
Mac/iOS的核心不是还是用C写的嘛,你看Core的部分很多函数都是C函数来的,所以理论上说Obj-C只是让你写代码写起来比较方便而已。
Tinyfool之前不也说过Obj-C和C++的性能比较吗?http://tiny4cocoa.com/thread/show/124/
Obj-C相对C++有更好的“动态特性”,就是通过消息机制实现的,但这必然多少会有一定性能影响。
其次,所有采用垃圾回收机制的语言内存消耗量都会比手工管理内存的消耗量大很多,这也一定程度上影响性能和效率。所以采用Java这类语言作为某一操作系统的核心开发语言,其实是很不明智的。
而对于面向应用的上层语言,如果是直接能访问操作系统底层语言接口的是最高效的,所以C++和Obj-C很明显就是最高效的方式。而另外一种例子就是Android中的Java,但其实那个和普通的Java基本上就不是一种相同的语言,只是利用了原来Java的语法和关键特征,关键是可以比较直接得访问操作系统核心语言的接口(JNI),所以才能相对比较高效。反面例子就是BB OS了(直接采用标准的JVM和Java基础库),用过的人都知道黑莓系统有多慢(虽然我还曾算是半个黑莓粉也不能否定这样的现实)。