Memory 科罗纳:记忆问题?
其实我这里没有什么问题,希望有人能帮我 1) 两者的区别是什么Memory 科罗纳:记忆问题?,memory,lua,memory-leaks,coronasdk,Memory,Lua,Memory Leaks,Coronasdk,其实我这里没有什么问题,希望有人能帮我 1) 两者的区别是什么 print(collectgarbage("count")) 及 2) 我有一个游戏,当你完成它后,它会跳回第一页,你可以再玩一次,我尝试输出TextureMemory,因为它不会显示内存泄漏,但每次玩游戏时,游戏会变得更滞后,除了内存泄漏,还有其他原因会使它滞后吗 3) 移除对象的正确方法是什么?我想做的是: object:removeSelf() object = nil 但是,如果我使用collectgarbage(“co
print(collectgarbage("count"))
及
2) 我有一个游戏,当你完成它后,它会跳回第一页,你可以再玩一次,我尝试输出TextureMemory,因为它不会显示内存泄漏,但每次玩游戏时,游戏会变得更滞后,除了内存泄漏,还有其他原因会使它滞后吗
3) 移除对象的正确方法是什么?我想做的是:
object:removeSelf()
object = nil
但是,如果我使用collectgarbage(“count”)进行输出,它在使用之前和之后都不会显示任何不同
游戏每次玩都落后已经让我痛苦了2天,真的找不到我的代码有什么问题,希望能在这里得到一些帮助
这是我关于删除所有内存的代码
--remove all the transition that store in a table
local k, v
for k,v in pairs(transitionTable) do
--print(k)
timer.cancel( v )
v = nil; k = nil
end
transitionTable = nil
transitionTable = {}
-- remove movie clip
playButtonAnim:removeSelf()
playButtonAnim = nil
-- remove displayGroup and it's child
displayGroup.x = display.contentHeight + 10
displayGroup.x = display.contentWidth + 10
if(displayGroup ~= nil and displayGroup.numChildren ~= nil) then
for i=1,displayGroup.numChildren do
print("child on display group : "..displayGroup.numChildren)
displayGroup:remove(1)
end
displayGroup:removeSelf()
end
我尝试:
collectgarbage("collect")
print( "collectgarbage is " .. collectgarbage("count") )
在每一行中,我发现删除电影剪辑部分会释放内存,我认为这不是删除它的正确方法?为了查看内存使用情况的变化,您需要在调用
collectgarbage(“collect”)
之前运行collectgarbage(“count”)
system.getInfo(“textureMemoryUse”)
返回分配的纹理内存量
睡眠(回放次数)
。-)
collectgarbage(“collect”)
(在某些情况下,一次可能不够)
也就是说,通常最好在每个帧上运行collectgarbage(“步骤”)
。(您可能需要调整GC步骤并暂停。)
有点晚了,但你永远不知道: 您忘记将对displayGroup的引用设置为零。 顺便说一句,如果你销毁了一个组,并且没有对子组的引用,你就不必明确地销毁子组
未正确清洁显示对象会使corona变慢,这很可能是延迟的原因。现在,我认为可能不是内存问题造成延迟,因为内存泄漏现在非常少,在10次重放后,内存使用从190增加到210。无论如何,我能知道这些:本地HealSqk=要求(“HealSeple”)HealSeal.In()HealStime= nILL考虑是否正确删除?(包括里面的所有变量?)
collectgarbage("collect")
print( "collectgarbage is " .. collectgarbage("count") )