24小时热门版块排行榜    

查看: 2375  |  回复: 8

xrxing

木虫 (小有名气)

[交流] 【求助】C++程序所需内存远远大于物理内存怎么办?

编程中如何使用虚拟内存,特向各位请教!
       本人电脑物理内存为2G。因为程序使用大量数组,在运行时使用的物理内存加虚拟内存超过4G,导致程序无法运行。为满足程序对内存的需要,请问专家如何使用虚拟内存?应该如何编程操作?使用哪些函数?
      非常感谢专家的帮助!
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ryhzd

木虫 (正式写手)


ajian04(金币+1):64位的系统硬件不一定支持 2010-10-17 07:58:44
xrxing(金币+3):非常感谢! 2010-10-18 00:22:51
换成64位操作系统
2楼2010-10-17 02:35:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ajian04

禁虫 (正式写手)

★ ★
xrxing(金币+2):非常感谢! 2010-10-18 00:23:19
余泽成(金币+2):谢谢参与应助! 2010-10-18 10:31:30
对虚拟内存设置说法很多,以下说法,供你参考。
内存的设定主要根据你的内存大小和电脑的用途来设定。所谓虚拟内存就是在你的物理内存不够用时把一部分硬盘空间所为内存来使用,不过由于硬盘传输的速度要比内存传输速度慢的多,所以使用虚拟内存比物理内存效率要慢,设的太大会差生大量的碎片,严重影响系统速度,设的太小就不够用,于是系统就会提示你虚拟内存太小。
1、一般情况下,可让Windows来自动分配管理虚拟内存,它能根据实际内存的使用情况,动态调整虚拟内存的大小。
2、自定义虚拟内存,一般默认的虚拟内存大小是取一个范围值,最好给它一个固定值,这样就不容易产生磁盘碎片,具体数值根据你的物理内存大小来定,一般是128MB物理内存设2 -3倍,256MB设1.5-2倍,512MB设1—1.5倍,1GB设0.5倍或不设。
3、具体步骤如下:右键单击“我的电脑”→属性→高级→性能 设置→高级→虚拟内存 更改→选择虚拟内存(页面文件)存放的分区→自定义大小→确定最大值和最小值→设置→确定。
4、虚拟内存(页面文件)存放的分区,一定要有足够的空间,硬盘资源不足,造成虚拟内存不够用;一台电脑中在一个分区设置虚拟内存就够用了,不必在其它分区再设置虚拟内存,一般设在靠近装有系统的C分区的D分区中。
3楼2010-10-17 07:59:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

magic7004

金虫 (职业作家)


xrxing(金币+2):非常感谢! 2010-10-18 00:23:50
余泽成(金币+1):谢谢参与应助! 2010-10-18 10:31:43
如果是win32的话,楼主只有2G的内存空间可以用。就算楼主装个8G内存,也不行。因为32位的寻址空间就是4G。

ps:建议搂住还是修改下算法吧,一定有更省内存的算法的。
流氓不可怕,可怕的是流氓有文化,有文化又BH的流氓无敌~~!
4楼2010-10-17 09:32:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ryhzd

木虫 (正式写手)


xrxing(金币+8):非常感谢! 2010-10-18 00:24:29
余泽成(金币+1):谢谢参与应助! 2010-10-18 10:31:53
建议方法:
1。增加物理内存,修改boot.ini文件,添加 /PAE 选项, 让xp支持4G内存。
注意:前提是你的主板支持4G内存
2。换成64位操作系统
3。修改算法,也是最可行的方法. 试想,以前在内存小的年代,大数据是怎么操作的,靠的就是算法。
     最简单的就是内存映射方法,把你的数组映射到硬盘文件,把对大数组的操作转化到硬盘文件的操作上去。
5楼2010-10-17 22:22:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xrxing

木虫 (小有名气)


ajian04(金币+1):谢谢参与交流~ 2010-10-18 13:19:33
现在系统已经换成WINDOWS 7,64位系统,下面该如何做,才能增加内存?
另外,如何在C++中使用内存映射方法?能提供参考文章或链接吗?

[ Last edited by xrxing on 2010-10-18 at 00:29 ]
6楼2010-10-18 00:26:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ryhzd

木虫 (正式写手)


ajian04(金币+1):欢迎交流~ 2010-10-18 13:19:27
xrxing(金币+2):非常感谢! 2010-10-18 15:40:39
引用回帖:
Originally posted by xrxing at 2010-10-18 00:26:04:
现在系统已经换成WINDOWS 7,64位系统,下面该如何做,才能增加内存?
另外,如何在C++中使用内存映射方法?能提供参考文章或链接吗?

[ Last edited by xrxing on 2010-10-18 at 00:29 ]

恐怕算法要你自己实现了,没有参考文章或链接。算法都和具体问题相关,如果你写过一段时间的程序,应该能够实现这种方法的。
7楼2010-10-18 01:06:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

stephenliu89

银虫 (小有名气)


ajian04(金币+1):谢谢参与交流~ 2010-10-18 13:19:44
xrxing(金币+1):非常感谢! 2010-10-18 15:41:00
用那么大内存,估计是算法写的不好吧。优化下算法啊,尽量节省空间
Email:stephenliu1989@163.com
8楼2010-10-18 10:53:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ryhzd

木虫 (正式写手)


ajian04(金币+1):谢谢参与交流~ 2010-10-18 13:19:52
xrxing(金币+5):非常感谢! 2010-10-18 15:41:29
引用回帖:
Originally posted by xrxing at 2010-10-18 00:26:04:
现在系统已经换成WINDOWS 7,64位系统,下面该如何做,才能增加内存?
另外,如何在C++中使用内存映射方法?能提供参考文章或链接吗?

[ Last edited by xrxing on 2010-10-18 at 00:29 ]

你可以参考下稀疏矩阵的索引存储,《c数值算法》第二版 p50,或英文原版《Numerical Recipes in C》(见http://www.fizyka.umk.pl/nrbook/bookcpdf.html)
9楼2010-10-18 11:58:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 xrxing 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[教师之家] 跳槽后在研项目怎么办? +5 简单化xn 2026-08-22 9/450 2026-08-23 10:59 by Tide man
[基金申请] 2026国自然函评费到账 +15 羊腰板 2026-08-21 16/800 2026-08-23 10:45 by process2012
[硕博家园] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +3 2JOx3r2CYEgw 2026-08-21 9/450 2026-08-23 10:44 by IXZuIJ2Q7OVy
[硕博家园] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +3 2JOx3r2CYEgw 2026-08-22 5/250 2026-08-23 07:41 by OEbVnUOu01ol
[博后之家] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +3 DpSrDtM079iu 2026-08-22 5/250 2026-08-23 04:07 by OEbVnUOu01ol
[论文投稿] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +3 QTy3jDtz1uLt 2026-08-21 9/450 2026-08-23 03:04 by OEbVnUOu01ol
[硕博家园] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +4 QTy3jDtz1uLt 2026-08-21 11/550 2026-08-23 02:55 by OEbVnUOu01ol
[考博] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +3 DpSrDtM079iu 2026-08-22 3/150 2026-08-23 00:55 by OEbVnUOu01ol
[基金申请] 93BebMhtakh前后11位开头都是大写 +7 且听虎啸 2026-08-17 8/400 2026-08-22 21:55 by 医学老男孩
[基金申请] 范进中举一文的中心思想 +3 zjuhero 2026-08-22 4/200 2026-08-22 20:02 by mycsru
[教师之家] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +4 2JOx3r2CYEgw 2026-08-21 4/200 2026-08-22 16:52 by sunzitan
[基金申请] 今天基金会出结果吗?20260819 +16 kkkl_v 2026-08-19 17/850 2026-08-22 16:12 by 阿布Abu
[基金申请] 时间戳今天,20号变了 +5 archvillain 2026-08-20 5/250 2026-08-22 06:12 by hui_daxiao
[基金申请] 科研孤儿太难了 +17 我4大白菜 2026-08-20 18/900 2026-08-21 20:57 by zhangev
[基金申请] 时间戳又变了 +13 wuchongjun 2026-08-20 19/950 2026-08-21 17:21 by 紫杉醇
[基金申请] 感觉是下周放榜了 +7 angus9576 2026-08-17 12/600 2026-08-21 13:38 by weiyin
[基金申请] 今天放榜没戏了吧 +9 yuleib84 2026-08-19 11/550 2026-08-21 10:06 by gltch
[基金申请] 基金啊基金 +4 longfie172 2026-08-20 4/200 2026-08-21 08:58 by mark mao
[基金申请] 重要消息,中午系统在维护 +11 yuleib84 2026-08-18 12/600 2026-08-20 11:09 by xskun
[基金申请] 今天维护系统维护 祝所有人 高中 +8 gjjjzhong 2026-08-18 9/450 2026-08-18 13:01 by 家与远方
信息提示
请填处理意见