zoukankan      html  css  js  c++  java
  • Creator性能优化

    性能优化主要这几个方面进行优化:加载优化,渲染优化,内存优化,CPU优化及一些小技巧。

    加载优化

    图片资源处理:巧用九宫格拉伸来实现资源得复用,如大的纯色背景图,完全可以使用一张小图来进行拉伸获得;

    使用图集:图集有3个好处,

      1.减少文件数量,提升加载速度

      2.减少体积

      3.减少DrawCall

    压缩:包括图片,纹理,音频文件的压缩,打包成图集之后,需要进行压缩

    Prefab加载优化:

      1.合理拆分预制体:

        1)实现最小单元资源复用

        2)预制体越大消耗时长呈指数上升

      2.开启延迟加载资源:勾选这个选项可以减少prefab的加载耗时,但首次显示的耗时会增加。

       因为由于勾选后,prefab所引用的资源,像图片、音效这些,不会在load时加载,而是会在prefab第一次显示的时候再进行资源的加载。因此需要根据具体的使用环境进行选择。

      3.选择优化策略:

        1)自动调整,creator根据加载方式自动调整优化策略,一般选择这个即可

        2)优化单次创建性能,加载时的耗时会减少很多,但实例化时的耗时会增加

        3)优化多次创建性能,实例化时的耗时将会大大减少,相应的,在load时的耗时会有所增加

    场景加载优化:

      1.合理使用预置体构成场景,分批异步进行加载

      2.使用加载界面优化用户体验

      3.开启延迟加载资源

    资源批量加载优化:使用分帧加载,第三方库async.eachLimit

    裁剪引擎模块:这一步通常在游戏上线前,将不需要的模块删除,减少包体大小

    渲染优化

    渲染优化,主要针对drawcall的优化:

    drawcall即CPU调用图形绘制接口的次数;

      1.使用图集,creator自带了自动合集功能,也可以使用其他第三方工具

      2.资源规划,尽量做到相同界面的资源放在相同得文件夹中,通用资源放在通用目录下,有以下好处

        1)方便打包成合集

        2)减少内存占用,方便使用内存

      3.减少使用系统字体,使用BMFont(2.09之后可以使用字体缓存),减少使用描边,mask,富文本

      4.调整渲染顺序:AABCB,这样顺序,改为AABBC顺序,渲染合批就不会被打断

    内存优化

    静态资源优化:使用场景的自动释放资源

    动态资源优化:

      1.设置自动释放资源

        cc.loader.setAutoRelease         //设置自动释放资源

        cc.loader.setAutoReleaseRecursively    //设置该资源及其资源递归引用到的所有资源

        动态资源的释放需要用户自己设置,设置为自动释放资源之后,切换场景后,该动态资源会自动释放

      2.手动释放资源

        cc.loader.getDependsRecursively     //获取prefab所引用的所有资源

        cc.loader.release(this.prefab);      //释放资源

        一般这样使用:

        cc.loader.setAutoRelease(texture2d,false);  //设置为自动释放,保留这份资源不想释放

        let deps = cc.loader.getDependsRecursively('prefabs/sample');

        let index = deps.indexof(texture2d._uuid);

        if(index !== -1)

          deps.splice(index,1);

        cc.loader.release(deps);

      3.使用对象缓存池

    CPU优化

    cpu优化主要是对代码逻辑进行优化:

      1.数组的push可以改为arr[arr.lenght] = 0;

      2.for效率,可以参考我的这篇文章 https://www.cnblogs.com/kefeiGame/p/8391859.html

      3.不要使用try-catch or try-finally , eval ,arguments

      4.优化算法

    杂项

    使用谷歌浏览器的Performance定位CPU问题

    使用谷歌浏览器的Memory定位内存问题

  • 相关阅读:
    123
    搭建https://github.com/vulhub/vulhub靶场_初稿
    【译】 渗透测试实战第三版(红队版)
    sqlmap
    fiddler一些高级用法
    安装django和selenium
    python中os模块
    python通过日志分析加入黑名单
    python简单的购物系统
    python文件操作
  • 原文地址:https://www.cnblogs.com/kefeiGame/p/10893035.html
Copyright © 2011-2022 走看看