可否用多进程(线程)向内存导入数据

xuhongxin8477 2008-08-20 08:44:16
我这里有2G左右的数据(10亿条记录),要进行大量复杂的统计计算。我采用的方法是一次性尽可能多的将数据导入内存,减少磁盘的读写,否则计算时间将是不可忍受的:
1.采用VS2005的IDE
2.C++建立链表,每一个链表元素标识一个记录
3.将硬盘上的文件读入内存的链表中(方便内存中计算时数据的检索)
我的机器内存1.25G,但当我的程序运行时,内存分配到620M左右的时候,系统就报错(“tigger a breakpoint”)。看来我想把数据都导入内存计算是行不通了。我怀疑错误的原因是在堆上分配太多内存而又不释放(其实我在程序最后写了释放的,但是释放的前提是数据全部进入内存,且计算完毕,现在数据还没全进去就报错了)。
我想问的是:
1.我的内存显然还有余力去接纳更多的数据(1.25G),但是在620兆就报错是不是因为windows对于单个进程的堆资源有上限?
2.如果我采用多进程或多线程(一个进程负责分配堆内存,一个进程负责计算,再一个进程负责将完成计算的元素所占用的资源释放)效果会不会好一点呢?
谢谢各位!
...全文
62 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

567

社区成员

发帖
与我相关
我的任务
社区描述
英特尔® 边缘计算,聚焦于边缘计算、AI、IoT等领域,为开发者提供丰富的开发资源、创新技术、解决方案与行业活动。
社区管理员
  • 英特尔技术社区
  • shere_lin
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧