我在我的一个iOS项目中使用db-access ORM
。我在我的项目中使用它时遇到内存问题我的应用场景是,我需要在我的应用程序的后台线程中以页面形式从服务器下载数据到本地数据库。
我正在做的步骤是从服务器获取30条记录的页面, 然后在循环中使用
检查db中是否存在记录firstMatchOf:@"product_uuid" withValue:productUuid
方法
然后,如果它没有返回,则使用以下代码块创建对象并提交
productObj = [Products new];
productObj.product_name=name;
productObj.product_uuid=productUuid;
BOOL success=[productObj commit];
有很多记录,我可以在profiler中看到获取函数和提交函数保留了太多内存并且不释放内存。因此,例如我下载了30页30条记录,应用程序内存使用量变为100MB,随着记录的增加而增加。 你能帮我解决一下内存管理问题吗?如果我做错了什么,请帮助我。
您的帮助将受到高度赞赏。
以下是仪器内存分配的快照 http://tinypic.com/view.php?pic=dvftqq&s=8#.VKVdOaaZL0g
答案 0 :(得分:0)
看起来像DBAccess出来的对象会以某种方式被保留。
当在事件块中执行查询时,当前构建中存在已知错误,但您没有提及使用框架的该部分,因此我们将暂时对其进行折扣。
我已经通过电子邮件向您发送了一个DBAccess版本,无论如何都修复了该错误,以防万一与之相关。
我们的部分自动化测试涉及查询循环然后插入,您是否可以将此场景与所有其他代码分开以在自动释放池中复制它?