加分求助:Release版,申请大内存的问题

RealInfo2012 2014-05-06 05:12:27
用的是VS2008,代码如下
int nFileLen = 145435208;
std::cout<<nFileLen<<std::endl;
char* pchData = new char[nFileLen+1];
用Windows任务管理器查看,在debug版中,内存每次都会涨145多M,但在Release版中,每次却只涨10几k,为啥啊?
...全文
145 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2014-05-07
  • 打赏
  • 举报
回复
引用 10 楼 cl_gamer 的回复:
老赵的百度结果基本都是Linux的,而且个人感觉没有我回到的精准,虽然比我的有深度
没准Linux是偷学Windows或Windows偷学Linux呢。
PDD123 2014-05-06
  • 打赏
  • 举报
回复
我觉得暂时没有必要研究那么深刻,程序不出错就行。
enic 2014-05-06
  • 打赏
  • 举报
回复
老赵的百度结果基本都是Linux的,而且个人感觉没有我回到的精准,虽然比我的有深度
赵4老师 2014-05-06
  • 打赏
  • 举报
回复
我还讨厌无视我回帖的坛友!
enic 2014-05-06
  • 打赏
  • 举报
回复
顺便研究了下,360等工具会有内存优化,貌似就是把working set内存中的一部分,刷新到virtual memory中。 就是从物理内存交换到虚拟内存,这样物理内存就能多出来。当程序激活的时候才会再从virtual调入到物理内存吧,,,
enic 2014-05-06
  • 打赏
  • 举报
回复
http://www.cnblogs.com/georgepei/archive/2012/03/07/2383445.html 这个帖子可能对你有帮助
enic 2014-05-06
  • 打赏
  • 举报
回复


我想我发现问题了,原理还不确定。
你应该也是从任务管理器看的,里边的内存有好几个选项,你看的可能是物理内存那里。但是实际上要开提交大小,才能看到实际的new出来的内存,涉及到一堆内存管理机制了。。。
“提交大小”这个列是正常的debug和release都一样
赵4老师 2014-05-06
  • 打赏
  • 举报
回复
enic 2014-05-06
  • 打赏
  • 举报
回复
标记一下,刚刚用win7+vs2008实验了,确实是这样的额,
yiyefangzhou24 2014-05-06
  • 打赏
  • 举报
回复
好像一般不用new开辟这么大内存 搜索VirtualAlloc/VirtualFree
RealInfo2012 2014-05-06
  • 打赏
  • 举报
回复
?能具体说下吗
赵4老师 2014-05-06
  • 打赏
  • 举报
回复
搜“内存延迟分配” ?

65,208

社区成员

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

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