| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1756 人关注过本帖
标题:弱弱的问下,用malloc分配空间后在任务管理器中显示的内存使用问题
只看楼主 加入收藏
zhaoyg
Rank: 1
等 级:新手上路
帖 子:328
专家分:0
注 册:2006-8-28
收藏
 问题点数:0 回复次数:6 
弱弱的问下,用malloc分配空间后在任务管理器中显示的内存使用问题
用malloc分配了一个很大的空间(百兆),但为何任务管理中显示本程序只占了十几兆
,只是见PF使用率升上去了。
请问是不是系统将其换到硬盘中去了?
望知者告知
搜索更多相关主题的帖子: 管理 空间 任务 malloc 
2008-08-12 20:37
csynyk
Rank: 1
等 级:新手上路
威 望:1
帖 子:114
专家分:0
注 册:2008-8-9
收藏
得分:0 
任务管理器中显示的只是实际物理内存的占用量,用malloc分配几百兆空间时,系统会根据实际物理内存的容量来分配空间,在实际物理内存(RAM)不够时,就会将申请的空间分配在虚拟内存中!虚拟内存其实用的就是硬盘空间!

http://blog./csynyk
2008-08-12 21:27
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
收藏
得分:0 
回复 2# csynyk 的帖子
malloc 上限是 64M 的吧??
2008-08-13 00:33
zhaoyg
Rank: 1
等 级:新手上路
帖 子:328
专家分:0
注 册:2006-8-28
收藏
得分:0 
[bo][un]csynyk[/un] 在 2008-8-12 21:27 的发言:[/bo]

任务管理器中显示的只是实际物理内存的占用量,用malloc分配几百兆空间时,系统会根据实际物理内存的容量来分配空间,在实际物理内存(RAM)不够时,就会将申请的空间分配在虚拟内存中!虚拟内存其实用的就是硬盘空间 ...


再问一下,
我为了看看进程一共能够分配多少空间,运行了这样的代码:while(malloc(1<<20))  total++;
随后显示PF用了1.96G,(在程序没有return的情况下)但我在C区(因我的虚拟页面在C区)上并没有发现少了1.96G

麻雀飞上枝头变凤凰,而菜鸟的我飞上枝头却感冒了,为什么我的脑袋如此的不管用呢。
2008-08-13 14:41
csynyk
Rank: 1
等 级:新手上路
威 望:1
帖 子:114
专家分:0
注 册:2008-8-9
收藏
得分:0 
你要注意这样机点才行:
1、检查malloc()是否成功
2、为分配的空间赋值。
3、编译成可执行文件*.exe
4、脱离编译器,直接运行*.exe
5、在程序赋值完成后再查看内存空间和c盘的剩余空间,这时才能发现变化。
6、退出程序前释放空间。

http://blog./csynyk
2008-08-13 17:25
leeco
Rank: 4
等 级:贵宾
威 望:10
帖 子:1029
专家分:177
注 册:2007-5-10
收藏
得分:0 
回复 4# zhaoyg 的帖子
pagefile.sys的大小不会根据分配情况变化,而是操作系统启动时就建立好的
2008-08-14 16:24
zhaoyg
Rank: 1
等 级:新手上路
帖 子:328
专家分:0
注 册:2006-8-28
收藏
得分:0 
非常感谢各位的回帖

麻雀飞上枝头变凤凰,而菜鸟的我飞上枝头却感冒了,为什么我的脑袋如此的不管用呢。
2008-08-14 18:49
快速回复:弱弱的问下,用malloc分配空间后在任务管理器中显示的内存使用问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015100 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved