Board logo

标题: [心得] 冒失Quicksilver有内存泄漏,最好不用。 [打印本页]

作者: 风间星魂    时间: 2013-6-4 10:46     标题: 冒失Quicksilver有内存泄漏,最好不用。

sys log里的记录。

Quicksilver[140]: *** __NSAutoreleaseNoPool(): Object 0x11448f2f0 of class NSConcreteData autoreleased with no pool in place - just leaking
作者: tonyunreal    时间: 2013-6-4 11:06

应该是子线程忘了手工创建Autorelease Pool了
iOS现在貌似不用特地干这个了,OSX可能下个版本也会解决?
作者: 风间星魂    时间: 2013-6-4 11:33

引用:
原帖由 tonyunreal 于 2013-6-4 11:06 发表
应该是子线程忘了手工创建Autorelease Pool了
iOS现在貌似不用特地干这个了,OSX可能下个版本也会解决?
你用gcd才不用,用NSThread一样需要建。
作者: tonyunreal    时间: 2013-6-4 11:35

引用:
原帖由 风间星魂 于 2013-6-4 11:33 发表
你用gcd才不用,用NSThread一样需要建。
求范例,我前两天特地试过好多次,还拿Instruments跟踪过
没有内存泄漏也没有警告log
开线程用的NSThread,在实机和模拟器都是
作者: tonyunreal    时间: 2013-6-4 11:58

代码


Instruments跟踪结果,可以看到每次mark之间没有对象泄漏

作者: tonyunreal    时间: 2013-6-4 11:59

对照组

手工泄漏内存的代码


手工泄漏内存的跟踪结果

作者: eva3d    时间: 2013-6-4 14:17

posted by wap, platform: iPhone

现在不是都改用alfred了么
作者: 风间星魂    时间: 2013-6-4 16:25

我记错了,从xcode4.2/sdk5.0后,就没泄漏了。。。
也是我一直用gcd没用NSThread/pthread导致没发现。。

[ 本帖最后由 风间星魂 于 2013-6-4 16:33 编辑 ]




欢迎光临 TGFC Lifestyle (http://club.tgfcer.com/) Powered by Discuz! 6.0.0