• 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 这样标签上。

     

     

  • 相关阅读:
    [BZOJ2969] 矩形粉刷
    数字 (number)
    字符串(String)
    小HY的四元组
    最大公约数(Max Gcd)
    [洛谷P2102] 地砖铺设
    Python OS模块(内置模块)
    json解析神器--jsonpath
    kafka 优势+应用场景
    Python之异常处理
  • 原文地址:https://www.cnblogs.com/dzqdzq/p/14957993.html
Copyright © 2020-2023  润新知