免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 7402 | 回复: 7
打印 上一主题 下一主题

[C++] 如何查看占用内存大小 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-10-22 14:56 |只看该作者 |倒序浏览
vector <string> svec;  //定义一个vector容器

while (!infile.eof())      //读文件,把每行都插入到容器中
{
getline(infile, str);
svec.push_back(str);
}

现在在linux或者unix下如何查看这个容器占用多大内存呢???谢谢!

论坛徽章:
0
2 [报告]
发表于 2008-10-22 15:36 |只看该作者
就没个人来回答下??

论坛徽章:
0
3 [报告]
发表于 2008-10-22 16:39 |只看该作者
和你同样关注。

论坛徽章:
0
4 [报告]
发表于 2008-10-22 17:59 |只看该作者
如果要知道精确的大小,可以在程序中输出log来查看容器的大小
如果只需要知道一个大概的大小,也不想修改程序,那么只能用系统监视工具(如ps)查看并估计了

论坛徽章:
0
5 [报告]
发表于 2008-10-22 21:51 |只看该作者

回复 #1 hr_it 的帖子

vector <string> svec;  //定义一个vector容器

while (!infile.eof())      //读文件,把每行都插入到容器中
{
getline(infile, str);
svec.push_back(str);
}

现在在linux或者unix下如何查看这个容器占用多大内存呢???谢谢!

答:svec是系统库里面的吗?应该不是吧,svec既然有push_back,那可以考虑在svec内部再做个查看函数。

如果够懒,可以用free,ps,都可以简单查看啊。

论坛徽章:
0
6 [报告]
发表于 2008-10-22 22:40 |只看该作者
原帖由 samon_fu 于 2008-10-22 21:51 发表
vector  svec;  //定义一个vector容器

while (!infile.eof())      //读文件,把每行都插入到容器中
{
getline(infile, str);
svec.push_back(str);
}

现在在linux或者unix下如何查看这个容器占用多大 ...

每次插入的时候,加上插入对象的大小,就是总大小

论坛徽章:
0
7 [报告]
发表于 2008-10-22 22:41 |只看该作者
原帖由 雨过白鹭洲 于 2008-10-22 22:40 发表

每次插入的时候,加上插入对象的大小,就是总大小

论坛徽章:
0
8 [报告]
发表于 2008-10-23 11:13 |只看该作者
vector 下有个capacity()函数可以用来返回目前vector占了多少个内存单元
这个值乘以容器内存储单元的值就是这个vector的内存大小了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP