bas*_*ibe 1 performance cocoa drawing objective-c
我编写了一个具有许多自定义视图的应用程序,通常会绘制很多行和位图.由于性能对应用程序来说有点关键,我花了很多时间来优化绘图性能.
现在,活动监视器告诉我,我的应用程序通常使用大约12%的CPU和仪器(分析器)表示花费了大量10%的CPU objc_msgSend
(主要用于绘制相关的系统调用).
一方面,我很高兴这一点,因为这意味着我的绘图速度和它的速度一样快,我的优化也取得了巨大的成功.另一方面,它似乎意味着仍然使用我的CPU的唯一事情是messages(objc_msgSend
)的Objective-C开销.因此,如果我在Carbon中编写应用程序,那么它的性能将会大大改善.
现在我很想得出结论,Objective-C是一种表现不佳的语言,尽管Cocoa似乎效率非常高,因为它显然可以比Objective-C发送消息更快地绘制.
那么,Objective-C真的是一种表现不佳的语言吗?你觉得怎么样?
不,Objective-C的表现并不差.为了证据,我引用了@ bbum关于objc_msgSend的手动优化组装的系列文章:
换句话说,objc_msgSend
很快; 方法调度不是你的问题.您是否可以发布导致您相信的分析信息?您可能误读了分析,或者您正在做一些非常奇怪的事情,等等.
但我保证你objc_msgSend
不是问题所在.如果是的话,我们现在肯定会听说过它.:)