w****p 发帖数: 45 | 1 正在用C++编一个能读很大GRAPH的程序。现在的程序只能读2百万节点的GRAPH,要是读
更大的,就会用完计算机的内存(3G的内存),出现内存不够的错误。
是不是解决的办法是把大部分数据存在硬盘上,将需要处理的部分读到内存? 如果是,具体这样该怎么做?
多谢建议!!! |
g*****g 发帖数: 34805 | 2 这需要啥办法?开一块内存,处理哪块读哪块不行吗?
【在 w****p 的大作中提到】 : 正在用C++编一个能读很大GRAPH的程序。现在的程序只能读2百万节点的GRAPH,要是读 : 更大的,就会用完计算机的内存(3G的内存),出现内存不够的错误。 : 是不是解决的办法是把大部分数据存在硬盘上,将需要处理的部分读到内存? 如果是,具体这样该怎么做? : 多谢建议!!!
|
w****p 发帖数: 45 | 3 我现在的问题是内存用的太多。 计算机的内存没办法存贮这么多的数据。
【在 g*****g 的大作中提到】 : 这需要啥办法?开一块内存,处理哪块读哪块不行吗?
|
g*****g 发帖数: 34805 | 4 ft, 自然是处理哪块数据就把哪块读进内存.
【在 w****p 的大作中提到】 : 我现在的问题是内存用的太多。 计算机的内存没办法存贮这么多的数据。
|
g*********s 发帖数: 1782 | 5 no virtual mem?
是,具体这样该怎
么做?
【在 w****p 的大作中提到】 : 正在用C++编一个能读很大GRAPH的程序。现在的程序只能读2百万节点的GRAPH,要是读 : 更大的,就会用完计算机的内存(3G的内存),出现内存不够的错误。 : 是不是解决的办法是把大部分数据存在硬盘上,将需要处理的部分读到内存? 如果是,具体这样该怎么做? : 多谢建议!!!
|
p***o 发帖数: 1252 | 6 Good question!
【在 g*********s 的大作中提到】 : no virtual mem? : : 是,具体这样该怎 : 么做?
|
t****t 发帖数: 6806 | 7 probably virtual memory is already exhausted...
【在 p***o 的大作中提到】 : Good question!
|
w****p 发帖数: 45 | 8 多谢各位!!!
对,我想我做的比较外行,是把所有的数据都读到内存里,
我是读一些原始的信息,建GRAPH,建成的GRAPH都是在内存里,然后在GRAPH上做些模
拟。
我不清楚怎么把内存中很大GRAPH弄到硬盘上,然后再像你说的,用哪块取哪块。
您有没有一些具体该怎么做的信息。多谢了!
【在 g*****g 的大作中提到】 : ft, 自然是处理哪块数据就把哪块读进内存.
|
w****p 发帖数: 45 | 9 对,这些MEMORY不够大。
【在 t****t 的大作中提到】 : probably virtual memory is already exhausted...
|
p***o 发帖数: 1252 | 10 Why not ask your boss to buy a machine with more memory?
【在 w****p 的大作中提到】 : 对,这些MEMORY不够大。
|
|
|
g*****g 发帖数: 34805 | 11 不管你是啥样的图,总可以序列化吧. 写到硬盘上然后
处理那块读那块不就是了.
【在 w****p 的大作中提到】 : 多谢各位!!! : 对,我想我做的比较外行,是把所有的数据都读到内存里, : 我是读一些原始的信息,建GRAPH,建成的GRAPH都是在内存里,然后在GRAPH上做些模 : 拟。 : 我不清楚怎么把内存中很大GRAPH弄到硬盘上,然后再像你说的,用哪块取哪块。 : 您有没有一些具体该怎么做的信息。多谢了!
|
p***o 发帖数: 1252 | 12 Probably thrashing will kill many graph algorithms ...
【在 t****t 的大作中提到】 : probably virtual memory is already exhausted...
|
y***d 发帖数: 2330 | 13 如果没有其它办法了,并且用的是 64bit linux,试试 mmap?
是,具体这样该怎么做?
【在 w****p 的大作中提到】 : 正在用C++编一个能读很大GRAPH的程序。现在的程序只能读2百万节点的GRAPH,要是读 : 更大的,就会用完计算机的内存(3G的内存),出现内存不够的错误。 : 是不是解决的办法是把大部分数据存在硬盘上,将需要处理的部分读到内存? 如果是,具体这样该怎么做? : 多谢建议!!!
|
w****p 发帖数: 45 | 14 谢谢,我会试着对节点用Serialization,可能要处理节点之间pointer的问题。
有没有人用过 boost 的 Memory-Mapped Files,这是不是用来解决这个这个问题的。
【在 g*****g 的大作中提到】 : 不管你是啥样的图,总可以序列化吧. 写到硬盘上然后 : 处理那块读那块不就是了.
|
w****p 发帖数: 45 | 15 谢谢提醒!graph这个东西不光是存储,有些算法要涉及大量的遍历
【在 p***o 的大作中提到】 : Probably thrashing will kill many graph algorithms ...
|
y***d 发帖数: 2330 | 16 说实话内存比人力便宜阿,让你老板花个百十块钱什么都解决了
【在 w****p 的大作中提到】 : 谢谢提醒!graph这个东西不光是存储,有些算法要涉及大量的遍历
|
w****p 发帖数: 45 | 17 谢谢,正在想将来是不是要弄一个64LINUX的机器,虽然我绝大部分的东西都在WINDOWS
上做,有时觉得还是很有必要的。
【在 y***d 的大作中提到】 : 如果没有其它办法了,并且用的是 64bit linux,试试 mmap? : : 是,具体这样该怎么做?
|
w****p 发帖数: 45 | 18 谢谢,有道理,先加满内存看看,实在不行再琢磨程序
【在 y***d 的大作中提到】 : 说实话内存比人力便宜阿,让你老板花个百十块钱什么都解决了
|
D*******a 发帖数: 3688 | 19 use 64bit
是,具体这样该怎么做?
【在 w****p 的大作中提到】 : 正在用C++编一个能读很大GRAPH的程序。现在的程序只能读2百万节点的GRAPH,要是读 : 更大的,就会用完计算机的内存(3G的内存),出现内存不够的错误。 : 是不是解决的办法是把大部分数据存在硬盘上,将需要处理的部分读到内存? 如果是,具体这样该怎么做? : 多谢建议!!!
|
w****p 发帖数: 45 | 20 谢了!
【在 D*******a 的大作中提到】 : use 64bit : : 是,具体这样该怎么做?
|
|
|
b*******s 发帖数: 5216 | 21
then switch to a 64-bits system :)
【在 t****t 的大作中提到】 : probably virtual memory is already exhausted...
|
y****e 发帖数: 23939 | 22 现在内存这么便宜,还不如花几十块钱把系统内存升级一下
是,具体这样该怎
么做?
【在 w****p 的大作中提到】 : 正在用C++编一个能读很大GRAPH的程序。现在的程序只能读2百万节点的GRAPH,要是读 : 更大的,就会用完计算机的内存(3G的内存),出现内存不够的错误。 : 是不是解决的办法是把大部分数据存在硬盘上,将需要处理的部分读到内存? 如果是,具体这样该怎么做? : 多谢建议!!!
|
b*****y 发帖数: 178 | 23 加内存是没用,不能算还是不能算,变64bit才是正道。 |