cocos creator2.4.3 内存优化总结

如果你的项目要发布原生平台,就用模拟器调试。否则就用浏览器。

Assets 资源管理; cc.assetsMangaer。    资源也有引用计数。在CCAssets.js中实现。

组件是节点的灵魂,节点时实体,挂载再场景树中。   节点也有引用计数,在Ref.cpp中实现。

内存泄漏99%都出现在资源管理上。 渲染组件一般要使用用Assets。  如Sprite组件要使用cc.SpriteFrame资源。  

如果组件用的资源是编辑器设置的,那么资源引用计数是1,不同组建使用同一个资源,那么就是组建个数和。 

有的资源脚本动态加载,加载完后这个资源引用计数为0, 如果要将其挂在组件上, 建议先将原来组件上的资源引用计数decRef,

然后再当前的引用计数addRef();

cc.resources.load(defaultPath, cc.SpriteFrame, (err, sp:cc.SpriteFrame) => {
                if(!err && sp){
                    self.spriteFrame.decRef();
                    self.spriteFrame = sp;
                    self.spriteFrame.addRef();
                    self.resetSize();
                }
            });                  

 

 

 

 

 

 

资源:

 

一定要弄清楚用的东西到底是组件还是资源。 不然很容易内存泄漏。强调一点,组件是没有引用计数的,它随着节点的释放而销毁。 而它使用的资源是否释放取决于引用计数是否为0。

这是我的游戏内存块照, 第三次和第四次新增了0.3兆

 一般只看cc:

想查看具体对象内存,就把鼠标放到@12334 这样标签上。

 

 

 

 

 

 

posted @ 2021-07-01 11:19  Please Call me 小强  阅读(593)  评论(0编辑  收藏  举报