很牛,瞬间变脸!
hi,问个问题,不知道楼主有没有测试,通过这个类创建精灵后添加到界面上,然后调用移除精灵的方法,内存是不会下降的,反而添加一次增加一次,只增加不减少。楼主有解决的方法吗?
代码如下:
添加精灵代码:
Size visibleSize = Director::getInstance()->getVisibleSize();
if (!m_node) {
m_node = Node::create();
this->addChild(m_node);
m_node->setContentSize(Size(Vec2(visibleSize.width, visibleSize.height)));
}
for (int i = 0; i < 30; i++) {
auto spriteWithHue = SpriteWithHue::create(“ball_red.png”);
spriteWithHue->setPosition(Vec2(rand_0_1() * visibleSize.width, rand_0_1() * visibleSize.height));
spriteWithHue->setHue(M_PI * 2 * rand_0_1());
m_node->addChild(spriteWithHue);
}
移除精灵方法:
if (m_node) {
m_node->removeAllChildrenWithCleanup(false);
m_node->removeFromParent();
m_node = nullptr;
}
mark



好东西马克一下
看看效果
1!!
好东西,顶一个
偷个懒,直接用封装好的,嘿嘿
看起来好像不错的样子。。。。。
嗯。看了下确实有这个问题,查了下主要是2个问题导致内存没降下来。
1.GLProgramStateCache每次都会缓存program state,这部分,直接调用
void GLProgramStateCache::removeUnusedGLProgramState()即可。
2.GLProgram创建后,即使析构了内存也降不下来。这部分不太清楚,先建了个issue给引擎。
https://github.com/cocos2d/cocos2d-x/issues/12138
这块得等引擎fix。
谢谢楼主了, 
好东西!!!!!!!!!
谢谢伟大的楼主大人
看下不错不错!!!!
看看~看看~看看~看看~
挺不错的,碉堡了啊!!
不错不错!!!!
叼!!!!!!
碉堡了
怎么android打包编译不过去啊?
不错不错!!!