lua 调试器性能热点


所设置的hook函数的性能为主要热点。

当纯lua写调试器时,此性能尤为重要。

hook函数中,必须的一个判定是不能调试调试器自身,这样,要判定源文件,那么就需要用debug.getinfo函数,而此函数开销很大(涉及内存分配)。

高效的做法是包装一个函数,获取指定stack level的文件名, 这样,文件名字符串总数是固定的,而lua中从c压入一个字符串到lua,查找哈希下即可, 要高效很多了。

至此,终于打包不用jit时,调试时不会因为hook函数导致运行卡(指等待断点)。

ps.用jit时,优化不优化都不是问题。。。  一点都不卡。

原文地址:https://www.cnblogs.com/lcinx/p/10570747.html