我在我的iPhone应用程序中使用libxml2的DOM解析器来解析一个包含十万行的XML文件。
我将检索到的内容存储到SQLite数据库中。但是,此过程需要几分钟才能完成,太多而无法用户友好。我的感觉是将数据写入数据库时丢失的最大部分时间。
我现在正在寻找有关如何提高此流程效率的任何提示。
答案 0 :(得分:5)
尝试使用Instruments分析代码!检查您自己的代码中花费最多时间的部分!看看你是否可以采取不同的方法(或发布缓慢的代码建议)!如果可能,请使用NSOperation / NSOperationQueue向用户提供进度反馈!
<!/ P>
答案 1 :(得分:3)
您可能还会看一下这个问题:"How do I improve the performance of SQLite?"
答案 2 :(得分:2)
绝对赞同JNozzi。首先分析您的代码,看看最大的性能瓶颈在哪里。目前尚不清楚它是XML DOM树解析,XML DOM树遍历,还是导致最大问题的SQLite插入。
如果问题是DOM树解析(甚至是遍历),那么你应该认真考虑切换到libxml2更有效的XML解析工具之一:xmlTextReader(XML pull api)或SAX(XML push api)。我推荐xmlTextReader: