可可 – CoreFoundation vs Foundation

可可 – CoreFoundation vs Foundation,第1张

概述在iPhone开发中,速度至关重要。有人知道使用CoreFoundation类型(如CFMutableDictionaryRef)与Foundation类型(其对应的NSMutableDictionary)之间是否存在速度差异。 我会认为 *** 作CF类型会更快,因为它不必抛出ObjC运行时消息,这是一个毫无根据的假设,有谁实际看过这个吗? -詹姆士 在技​​术意义上,是的,正是因为这个原因才更快。 在 在iPhone开发中,速度至关重要。有人知道使用CoreFoundation类型(如cfmutabledictionaryRef)与Foundation类型(其对应的NSMutableDictionary)之间是否存在速度差异。

我会认为 *** 作CF类型会更快,因为它不必抛出ObjC运行时消息,这是一个毫无根据的假设,有谁实际看过这个吗?

-詹姆士

解决方法 在技​​术意义上,是的,正是因为这个原因才更快。

在实际的意义上,不,不是更快。一方面,速度差异很小。在整个过程的整个生命周期中,我们都在说毫秒。

iPhone的节省可能会更大,但是您仍然可以获得最小的速度。您在时间上更好地在乐器中分析您的应用程序,并将其告知您,并在自己的代码中熨烫热点。

那就是基金会变得更快:你的时间。

使用基金会自动释放功能的代码通过避免易于避免的内存泄漏(即忘记写入或未能达到发布消息),节省了大量时间和头痛。 CF没有自动释放,所以你必须记住明确地CFRelease你创建或复制的所有东西 – 当你忘记或不能达到这个代码(我的意思是说,当我从经验中说话),你会花更多的钱时间追踪内存泄漏。静态分析仪有助于,但它永远无法捕捉到一切。

(你技术上可以自动释放CF对象,但是这样做的代码是非常糟糕的,你只是减少你已经微不足道的速度增益。)

所以,尽可能坚持基金会。不要超越自动释放;即使在纯Cocoa中,仍然有时候明确地释放对象是有保证的(主要是紧密的循环),而Cocoa touch的这个数量翻了一倍(因为如果你分配了太多的内存,iOS会杀死你的应用程序,所以你想要释放大对象像图像尽快)。但通常,自动释放可以节省您比CF永远保存用户更多的时间。

非时间相关的原因是,具有参数名称(来自消息选择器)的Objective-C代码与值混合,比基于C函数的代码更容易阅读。这可能不会使你的工作更快,但它肯定会使它更有趣。

总结

以上是内存溢出为你收集整理的可可 – CoreFoundation vs Foundation全部内容,希望文章能够帮你解决可可 – CoreFoundation vs Foundation所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1040859.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存