解析大型PLIST和内存占用

时间:2010-11-28 23:49:42

标签: xml cocoa parsing memory plist

在这个问题(http://stackoverflow.com/questions/1267474/itunes-xml-parsing-in-cocoa)中,Sreelal询问如何提高加载/解析大型PLIST的性能。然而,问题从来没有得到真正的答案(尽管亚历克斯给出了一些非常有用的指针)。

Peter Hosey指出,即使解析PLIST而不是转储到NSDictionary中,整个文件也会被加载到内存中。

在Cocoa应用程序中,我正在使用Aperture库,它们也有大型PLIST文件。获得良好性能(速度)并且不让应用程序占用系统内存的最佳方法是什么?

NSXMLParser是一个好方法吗?如果可能的话,我更愿意坚持使用Apple自己的框架。

由于

1 个答案:

答案 0 :(得分:1)

当弄乱大文件时,我会使用NSXMLParser与NSFileHandle的组合,这允许您一次加载部分数据而不会一次性加载到内存中。 Apple在developer.apple.com上有一个完整的WWDC视频(如果您的注册开发人员)在iPhone OS上称为高​​级性能优化。因为他们建议你不要将PLIST格式用于非常大的文件,但是他们会讨论如何加载部分文件,然后你可以使用NSXMLParser来解析它们的小部分(甚至可以分成几个线程)。希望这有帮助!