level 1
GBanana29
楼主
比如这样的代码
function teset(arg)
local upvalue = arg
return function()
upvalue = upvalue + 1
return upvalue
end
end
local handler = test(1)
print(handler())
---------------------------
我看了很多帖子,有说handler= nil会释放对upvalue的引用,有说在内嵌函数执行完后upvalue = nil,但是我测试了好多次,内嵌函数循环执行(也就是执行handler那两句很多遍),使用了很大一部分内存,这是发生了内存泄漏吗,有大佬知道如何解决吗
2022年10月12日 15点10分
1
function teset(arg)
local upvalue = arg
return function()
upvalue = upvalue + 1
return upvalue
end
end
local handler = test(1)
print(handler())
---------------------------
我看了很多帖子,有说handler= nil会释放对upvalue的引用,有说在内嵌函数执行完后upvalue = nil,但是我测试了好多次,内嵌函数循环执行(也就是执行handler那两句很多遍),使用了很大一部分内存,这是发生了内存泄漏吗,有大佬知道如何解决吗