槽点:1、从来没有见过成熟引擎有这么任性!!!!想杀就杀!!
/**
* Release texture.
* @method releaseTexture
*/
releaseTexture: function () {
if (this._webTextureObj) {
cc._renderContext.deleteTexture(this._webTextureObj);
}
},
texture管理是引擎内存管理的第一步,把猴子扔给引擎使用者,使用者焦头烂额,项目稍复杂点便理不清楚,在底层解决这个其实很简单,哪怕引用计数也可以啊
2、引擎鼓励使用NodePool是没有错,但是这个NodePool也太简陋了,不支持多个对象使用,每个对象需要new 一个对象池,太烦了,在具体实现的时候使用了reuse\unuse,可是它的其他组件呢?它的子呢?后来加了一个poolHandlerComp,又是把猴子扔给引擎使用者?
对于一个优秀的对象池,使用者只需要get\put,不需要去自行new 对象(对象构造本身就对对象池兼容),然后不用再put进去,有相应的对象上限处理机制(比如按时间排序)。
3、cocos对资源根本就没有进行管理,简单用一个cache把资源存储起来,提供了一两个释放接口,提供一个autoRelease的标志给用户,然后不顾一切地杀!没有资源分组,没有资源分类,没有上限管理。话说这种东西有技术门槛吗?