在使用 Instruments 测试我的应用程序后,我意识到当前的 CSV parser我使用的内存占用很大。有人推荐内存占用少的吗?
最佳答案
您可能应该逐行执行此操作,而不是读取整个文件、解析它并返回一个包含其中所有行的数组。在任何情况下,您链接到的代码都会在一个循环中产生无数个临时对象,这意味着它会有非常高的内存开销。
一个快速的解决办法是在循环的lop处创建一个NSAutoreleasePool,并在底部排出它:
while ( ![scanner isAtEnd] ) {
NSAutoreleasePool *innerPool = [[NSAutoreleasePool alloc] init];
...一堆代码...
[innerPool drain];
}
这将清除临时对象,因此您的内存使用量将是数据的大小,加上文件中每个字符串的对象(大约 8 字节 * 行 * 列)
关于iphone - 适用于 iPhone 的低内存占用的 CSV 解析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3031181/