cat*_*lan 7 csv iphone cocoa objective-c
在使用Instruments测试我的应用程序后,我意识到我使用的当前CSV解析器具有巨大的内存占用.有人建议内存占用少吗?
您可能应该逐行执行此操作,而不是读取整个文件,解析它,并返回包含其中所有行的数组.在任何情况下,您链接的代码在循环中产生数以万计的临时对象,这意味着它将具有非常高的内存开销.
快速解决方法是在循环的顶部创建一个NSAutoreleasePool,并将其排到底部:
while ( ![scanner isAtEnd] ) {
NSAutoreleasePool *innerPool = [[NSAutoreleasePool alloc] init];
Run Code Online (Sandbox Code Playgroud)
......一堆代码......
[innerPool drain];
}
Run Code Online (Sandbox Code Playgroud)
这将消除临时对象,因此您的内存使用量将是数据的大小,加上文件中每个字符串的对象(大约8个字节*行*列)
| 归档时间: |
|
| 查看次数: |
4252 次 |
| 最近记录: |