社区
C++ 语言
帖子详情
为什么new了这么多,只占这么点内存
junkli
2011-07-07 11:09:09
int i=1024*1024*1024;
char *c=new char[i];
为什么只占800多K内存
...全文
2381
103
打赏
收藏
为什么new了这么多,只占这么点内存
int i=1024*1024*1024; char *c=new char[i]; 为什么只占800多K内存
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
103 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
laizhixinli
2011-07-18
打赏
举报
回复
小菜不懂,学习学习!!
brk1985
2011-07-18
打赏
举报
回复
学习了。。。mark。。。
hongtao1126
2011-07-18
打赏
举报
回复
打错了
就想叫yoko
2011-07-18
打赏
举报
回复
linux下的malloc确实存在 在实际要使用到申请的内存时再去申请内存的情况
jungle_007
2011-07-17
打赏
举报
回复
嗯,牛人多多,学习了
robinkeng
2011-07-14
打赏
举报
回复
makr
TimZhuFaith
2011-07-14
打赏
举报
回复
好贴。。。
猫已经找不回了
2011-07-14
打赏
举报
回复
[Quote=引用楼主 junkli 的回复:]
C/C++ code
int i=1024*1024*1024;
char *c=new char[i];
为什么只占800多K内存
[/Quote]
重点就是你怎么看出只有800多k。楼主问过你的电脑了?没有memset的话,你就看一下strlen那必然是不对的。
strlen只是遇到'\n'就返回了。
nightkids_008
2011-07-14
打赏
举报
回复
此贴应该加精~~置顶
花气袭人知昼暖
2011-07-14
打赏
举报
回复
我用vs2008,占用了大约1G。
笨小鸟
2011-07-11
打赏
举报
回复
我只想说new出来的内存肯定是马上就提交了的,不存在暂时不占用的说法,要不你试试new个大约2g的内存,但是不使用,看你电脑卡不卡。
一根烂笔头
2011-07-10
打赏
举报
回复
喔喔喔喔,高手很多啊!而且都是偏内核的啊!
此贴将探讨出一个名堂来,菜鸟继续关注!
不过我还要说一句:搞程序的用“金山卫生巾”?或者360?你相信它吗?表示鸭梨很大!
motzyd
2011-07-10
打赏
举报
回复
学C语言的人用金山卫士查看内存变动?
lwh_liu
2011-07-10
打赏
举报
回复
马克,激动的马克。
waxilo1988
2011-07-09
打赏
举报
回复
说的好 学东西了
O溺水的鱼0
2011-07-09
打赏
举报
回复
深奥。
DontKissBossAss
2011-07-09
打赏
举报
回复
new 出来的东西,有足够的寓意被COMMIT到物理内存中。但是当内存紧张的时候可能被缺页换出, 当然也有办法申请大内存而不被换出(M$下: virtualalloc时传递*_LARGE_PAGE)。这种限制有点多。 所以楼上的某些大哥们,不要太武断,了解了再说。
Roy_Smiling
2011-07-09
打赏
举报
回复
我就分配了1G的内存。
hufeikong
2011-07-09
打赏
举报
回复
没拉出屎的话,不给冲水的。
---------------------
真经典!
Lactoferrin
2011-07-09
打赏
举报
回复
int main()
{
int i=1024*1024*1024;
//char *c=new char[i];
VirtualAlloc(0,i,MEM_COMMIT|MEM_RESERVE,PAGE_READWRITE);
getch();
return 0;
}
taskmgr
内存使用:656k 虚拟内存大小1049760k
加载更多回复(83)
C++
内存
分配(
new
,operator
new
)详解
本文主要讲述C++
new
关键字和operator
new
, placement
new
之间的种种关联,
new
的底层实现,以及operator
new
的重载和一些在
内存
池、STL中的应用。 一.
new
operator 和 operator
new
new
operator:指我们在C++里通常用到的关键字,比如A* a =
new
A; operator
new
:它是一个操作符,并且可被重载(类似加减乘除的操作符重载) 关于这两者的关系,我找到一段比较经典的描述(来自于www.cplusplus..
【C++】C/C++
内存
管理(
new
和delete详解)
C++
内存
管理:
new
和delete细节
C++中使用
new
占
住固定
内存
main.cpp #include <cstdlib> #include <iostream> int64_t total = int64_t(128) * 1024 * 1024 * 1024; char * p; int main() { while (total) { // 一次申请500M size_t batch = 1024 * 1024 * 500; batch = batch > total ? total : batch;
new
一个Object对象
占
用多少
内存
?
new
1个对象是16字节,
new
2个对象是32字节,
new
100个对象是1600字节,通过很多次的尝试,我们从jvisualvm里面可以看到 字节数=对象数*16 ,我们有理由相信对象数跟字节数的线性关系。从这里可以看出,jvisualvm显示的
内存
占
用跟引用的4字节或8字节是没有关系的,也就是说,jvisualvm显示的是堆
内存
占
用,这也很好理解,毕竟所有引用的字节
占
用是固定的。8字节是引
一个HashMap对象所
占
内存
的分析
Map<Object, Object> map =
new
HashMap<>(); 日常写代码中,可能都不会关注这一行代码
占
了多少个
内存
,今天我们就来分析一下。 首先,map是一个对象,而java对象包含了三个部分: 对象头 实例数据 对齐填充字节 对象
内存
分析 java对象头 我们先来看看对象头,对象头中也分为了三部分: Mark Word class pointer array length(只有数组对象才有) 我们目前只考虑在64位下并默认开启压缩的情况下的
内存
,
C++ 语言
64,651
社区成员
250,488
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章