首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用多线程并行加载多个表中的大数据

使用多线程并行加载多个表中的大数据
EN

Stack Overflow用户
提问于 2013-04-25 19:31:09
回答 3查看 246关注 0票数 0

我正在尝试从Ultralite DB加载来自6个不同表的大约10K条记录。

我为6个不同的表创建了不同的函数。

我试着用NSInvokeOperations,NSOperations,GCD,NSOperation的子类化来并行加载它们,但是都没有结果。

实际上,从一个表加载10K需要4秒,而从另外5秒开始,如果我将这2个放在队列中,则需要9秒。这意味着我的代码没有并行运行。

如何提高性能问题?

EN

回答 3

Stack Overflow用户

发布于 2013-04-25 20:19:23

可能有多种方法可以做到这一点。

我的建议是:

  • 将表格视图的行数设置为精确计数(在您的情况下为10k)
  • 表格视图经过优化,在开始时仅创建少量单元格(遵循拉动模型)。所以cellForRowAtIndexPath只会在开始时被调用几次。
  • 有一个数组,并且在开始时只获取50个条目。有一个计数器变量。
  • 当用户滚动表格视图和计数达到50之后,获取下50个项目(这将花费更少的时间),并用下一个50个数据填充单元格。继续做同样的事情。

希望它能起作用。

票数 3
EN

Stack Overflow用户

发布于 2013-04-29 15:55:41

您应该以块为单位获取记录(即在一个表中一次获取50-60条记录)。然后,当用户到达表的末尾时,再加载50 -60条记录。尝试使用这个库:Bottom Pull to refresh more data in a UITableView

关于并行性,使用GCD,并在GCD的成功块调用时重新加载相应的表。

票数 0
EN

Stack Overflow用户

发布于 2013-04-25 19:33:02

好的,您必须使用ParaTime函数,请在线查找它们以获取更多信息

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16213603

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档