iphone - 适用于 iPhone 的低内存占用的 CSV 解析器

标签 iphone objective-c cocoa csv

在使用 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/

相关文章:

macos - 使用 Swift 3 和 Cocoa 以编程方式创建菜单

iphone - writeToFile :atomically: not working in 4. 1 SDK 及以下版本,但适用于 4.2 beta SDK

ios4 - uiwebview 中的滚动条

iphone - 我怎样才能在 Objective-C 中正确地转义这个正则表达式?

objective-c - 在 Cocoa 中获取机器唤醒 + 用户登录通知的可靠方法?

objective-c - 如何在 OSX 中查找已安装的存储设备?

iphone - 旋转时调整 iPhone 上的 View 大小

iphone - 单击 "OK"后首次运行时 GPS 未启动

ios - 单击时将 UiScrollView 元素置于中心

ios - 在 View 之间传递值给出 (null)