gpt4 book ai didi

debugging - LuaJIT:脚本访问全局变量多少次?

转载 作者:行者123 更新时间:2023-12-03 06:55:57 28 4
gpt4 key购买 nike

我正在尝试优化我的 LuaJIT 代码,我想知道是否有一个调试工具,或者我是否可以编写一个,来检查我的脚本访问全局变量/表/函数的次数?

最佳答案

您可以使用代理表来存储全局变量,并将对全局表的任何访问转移到该代理,并具有跟踪功能。

local globals = {}
setmetatable(_G, {
__newindex = function (_, k, v)
print(debug.traceback("Setting global variable " .. k, 2))
rawset(globals, k, v)
end,
__index = function (_, k)
print(debug.traceback("Getting global variable " .. k, 2))
return rawget(globals, k)
end,
})

a = 1
a = 2

print(a)

示例输出:

Setting global variable a
stack traceback:
prog.lua:15: in main chunk
[C]: at 0x00404960
Setting global variable a
stack traceback:
prog.lua:16: in main chunk
[C]: at 0x00404960
Getting global variable a
stack traceback:
prog.lua:18: in main chunk
[C]: at 0x00404960
2

Live example on Wandbox

关于debugging - LuaJIT:脚本访问全局变量多少次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58001607/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com