程序运行中的虚拟内存不足的问题

一峰还有一峰小 2006-10-16 02:33:52
我的c++程序在运行一段时间后出现提示说虚拟内存不足,但是我用性能监视发现,尽管虚拟内存使用率达到100%,但是可用内存还有100M多,我使用XP 512M RAM,虚拟内存设置为1G。
请问可能是什么原因?
非常感谢!!
...全文
342 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
taodm 2006-10-18
  • 打赏
  • 举报
回复
windows的内存管理不是你以为的先用物理内存再用虚拟内存。
他要留N多物理内存确保其它程序可以运行的。
  • 打赏
  • 举报
回复
如果是内存泄漏,为什么可用内存没有用完,而虚拟内存不足呢?
carbonic 2006-10-16
  • 打赏
  • 举报
回复
楼主的程序中是否有“只申请从不释放内存”的代码存在,检查一下,内存泄漏问题。
========================================
表示同意。
OOPhaisky 2006-10-16
  • 打赏
  • 举报
回复
楼主的程序中是否有“只申请从不释放内存”的代码存在,检查一下,内存泄漏问题。
jixingzhong 2006-10-16
  • 打赏
  • 举报
回复
请问可能是什么原因?
===========
虚拟内存的使用,
不是说在 你的物理内存使用完了之后开始启用的。

在仍有物理内存的时候,
系统也会根据一定的优化策略,
使用一定程度的虚拟内存, 而不是只使用物理内存。
Macor 2006-10-16
  • 打赏
  • 举报
回复
如果在每台机器上都出现,没说的,内存泄露
lhj 2006-10-16
  • 打赏
  • 举报
回复
用工具检查一下就可以看出是否有内存泄漏。一般调试工具如VC系列,启动调试后,正常的结束程序,在输出的信息中的debug栏内会现实您的内存泄漏情况
Jokar 2006-10-16
  • 打赏
  • 举报
回复
memory leak ?
  • 打赏
  • 举报
回复
1、程序运行开始,虚拟内存使用1%,可见不是病毒;
2、虚拟内存设置在物理内存的1.5-2倍,不是虚拟内存设置不当;
3、我设置的分页文件所在盘有10G的可用空间;
4、我没有使用NTFS文件系统。
飞哥 2006-10-16
  • 打赏
  • 举报
回复
参考一下
飞哥 2006-10-16
  • 打赏
  • 举报
回复
虚拟内存不够的几个可能

1、感染病毒了吧!

有些病毒发作时会占用大量内存空间,导致系统出现内存不足的问题。赶快去杀毒,升级病毒库,然后把防毒措施做好!

2、虚拟内存设置不当第3楼

虚拟内存设置不当也可能导致出现内存不足问题,一般情况下,虚拟内存大小为物理内存大小的2倍即可,如果设置得过小,就会影响系统程序的正常运行。重新调整虚拟内存大小以WinXP为例,右键点击“我的电脑”,选择“属性”,然后在“高级”标签页,点击“性能”框中的“设置”按钮,切换到“高级”标签页,然后在“虚拟内存”框中点击“更改”按钮,接着重新设置虚拟内存大小,完成后重新启动系统就好了。

3、系统空间不足

虚拟内存文件默认是在系统盘中,如WinXP的虚拟内存文件名为“pagefile.sys”,如果系统盘剩余空间过小,导致虚拟内存不足,也会出现内存不足的问题。系统盘至少要保留300MB剩余空间,当然这个数值要根据用户的实际需要而定。用户尽量不要把各种应用软件安装在系统盘中,保证有足够的空间供虚拟内存文件使用,而且最好把虚拟内存文件安放到非系统盘中。

4、因为SYSTEM用户权限设置不当

基于NT内核的Windows系统启动时,SYSTEM用户会为系统创建虚拟内存文件。有些用户为了系统的安全,采用NTFS文件系统,但却取消了SYSTEM用户在系统盘“写入”和“修改”的权限,这样就无法为系统创建虚拟内存文件,运行大型程序时,也会出现内存不足的问题。问题很好解决,只要重新赋予SYSTEM用户“写入”和“修改”的权限即可,不过这个仅限于使用NTFS文件系统的用户。
  • 打赏
  • 举报
回复
程序很大,有10万行左右,不好贴。

内存泄漏为什么不是可用内存不足呢?
飞哥 2006-10-16
  • 打赏
  • 举报
回复
如果代码可以贴的话,大家看看

内存严重泄漏啊!!!
  • 打赏
  • 举报
回复
我仔细检查了内存的分配和释放。另外,为什么可用内存还有那么多?而虚拟内存不足?
ttfy1234 2006-10-16
  • 打赏
  • 举报
回复
检查内存分配

64,671

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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