當我按「BTN」存儲器加載LUA表從80M上升到240M。 而我按'btn2'刪除對象(self.sprite)包含許多lua表,但內存沒有下降。
這段代碼有什麼問題?或者它是一個lua錯誤?
我用cocos2dx-3.8.1/xcode7/ios模擬器。
local MainScene = class("MainScene", cc.load("mvc").ViewBase)
function MainScene:onCreate()
local btn = ccui.Button:create("res/Button_Normal.png","res/Button_Press.png","res/Button_Disable.png")
btn:setScale9Enabled(true)
btn:setContentSize(cc.size(70,70))
btn:setPosition(100,100)
btn:setTitleColor(cc.c3b(0,0,0))
btn:setTitleFontSize(30)
btn:setTitleText("Add")
btn:addTouchEventListener(function(ref,typ)
if typ == ccui.TouchEventType.ended then
self.sprite = cc.Sprite:create("res/Button_Normal.png")
for i=1,1000000 do
self.sprite["s_"..i] = {"abc",123}
end
self.sprite:setPosition(100, 200)
self:addChild(self.sprite)
end
end)
self:addChild(btn)
local btn2 = ccui.Button:create("res/Button_Normal.png","res/Button_Press.png","res/Button_Disable.png")
btn2:setScale9Enabled(true)
btn2:setContentSize(cc.size(70,70))
btn2:setPosition(200,100)
btn2:setTitleColor(cc.c3b(0,0,0))
btn2:setTitleFontSize(30)
btn2:setTitleText("remove")
btn2:addTouchEventListener(function(ref,typ)
if typ == ccui.TouchEventType.ended then
if self.sprite then
self.sprite:removeFromParent(true)
self.sprite = nil
end
end
end)
self:addChild(btn2)
end
return MainScene
請直接將代碼帶到帖子中。這樣,沒有人需要點擊鏈接來查看你有什麼代碼。此外,請參閱是否可以將其分解爲具體導致增加的因素。謝謝! – Josh
您是否等待垃圾收集器運行?你是否強迫它運行?你強迫過兩次嗎? –
@Josh感謝您的建議。 – superyyl