我会认为 *** 作CF类型会更快,因为它不必抛出ObjC运行时消息,这是一个毫无根据的假设,有谁实际看过这个吗?
-詹姆士
解决方法 在技术意义上,是的,正是因为这个原因才更快。在实际的意义上,不,不是更快。一方面,速度差异很小。在整个过程的整个生命周期中,我们都在说毫秒。
iPhone的节省可能会更大,但是您仍然可以获得最小的速度。您在时间上更好地在乐器中分析您的应用程序,并将其告知您,并在自己的代码中熨烫热点。
那就是基金会变得更快:你的时间。
使用基金会自动释放功能的代码通过避免易于避免的内存泄漏(即忘记写入或未能达到发布消息),节省了大量时间和头痛。 CF没有自动释放,所以你必须记住明确地CFRelease你创建或复制的所有东西 – 当你忘记或不能达到这个代码(我的意思是说,当我从经验中说话),你会花更多的钱时间追踪内存泄漏。静态分析仪有助于,但它永远无法捕捉到一切。
(你技术上可以自动释放CF对象,但是这样做的代码是非常糟糕的,你只是减少你已经微不足道的速度增益。)
所以,尽可能坚持基金会。不要超越自动释放;即使在纯Cocoa中,仍然有时候明确地释放对象是有保证的(主要是紧密的循环),而Cocoa touch的这个数量翻了一倍(因为如果你分配了太多的内存,iOS会杀死你的应用程序,所以你想要释放大对象像图像尽快)。但通常,自动释放可以节省您比CF永远保存用户更多的时间。
非时间相关的原因是,具有参数名称(来自消息选择器)的Objective-C代码与值混合,比基于C函数的代码更容易阅读。这可能不会使你的工作更快,但它肯定会使它更有趣。
总结以上是内存溢出为你收集整理的可可 – CoreFoundation vs Foundation全部内容,希望文章能够帮你解决可可 – CoreFoundation vs Foundation所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)