查看: 1078|回复: 2

内存释放问题

[复制链接]

该用户从未签到

发表于 2014-7-17 11:30:30 | 显示全部楼层 |阅读模式
for(unsigned int i = 0; i < fileList.size(); ++i)
{
     //fileList中的文件都是不同的文件
       osg::ref_ptr<osg::Node> modelNode = osgDB::readNodeFile(fileList[i]);
}
执行上面语句中,进程的内存占用大小会一直增大,如果fileList大到一定程度,进程会直接死掉,如果能成功执行完,进程的内存占用也不会减少,请问这是为什么?又做了个试验,如果fileList中的文件都是相同的文件,则内存占用一直比较平衡,基本不会增加。
不知道这是什么原因?求解!

该用户从未签到

发表于 2014-7-17 13:09:57 | 显示全部楼层
相同文件会用内存缓存,不会再读入新文件,也不开辟新内存,文件不同,每次都需要读取和申请内存
如有很多文件进行读取,需要考虑场景组织结构/加载方式,动态维护必不可少

该用户从未签到

发表于 2014-7-19 11:18:54 | 显示全部楼层
局部变量不是离开作用域就销毁了吗?不应该是你说的这样啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表