Aug 20

STL的内存占用测试 不指定

felix021 @ 2008-8-20 18:45 [IT » 程序设计] 评论(1) , 引用(0) , 阅读(9935) | Via 本站原创 | |
今天做比赛的时候Cplus用STL的list写一个3000个vertex的图的邻接表MLE了,所以产生了测试STL容器内存占用的念头。
没下什么软件,也没用系统什么命令,就是写个程序插入500,000个元素到这些容器中,然后分别提交到WOJ 1035进行测试。
因为1035的内存限制是64M,时间限制是1000ms,所以没有用更大的数据进行测试,但是测试结果确实能说明一些问题了:

实测环境:WOJ 1035 BG
数据量: 500,000个int(map使用的是<int,int>)
结果:
容器    内存占用    时间
array  3060K      4ms
deque  3200K      15ms
queue  3204K      19ms
stack  3204K      19ms
vector 5168K      14ms
priority_queue 5172K  650ms
list   16768K     132ms
set    24584K     922ms
map<int,int> 24584K   913ms

不知道为什么list会占用那么大的空间,看来以后对list的使用要谨慎再谨慎了。



欢迎扫码关注:




转载请注明出自 ,如是转载文则注明原出处,谢谢:)
RSS订阅地址: https://www.felix021.com/blog/feed.php
Tags: ,
sandy1
2008-8-21 00:50
这个肯定啊,list,set,map等这类指针构筑存储结构肯定会多出很多额外的空间占用的。特别对于大量小体积的数据类型更明显。如果是int的话,list的占用应该是vector的3倍左右吧。
felix021 回复于 2008-8-21 01:05
set和map都还好理解,list就一个双链表。。。
分页: 1/1 第一页 1 最后页
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   *非必须
网址   电邮   [注册]