gpt4 book ai didi

c++ - 如何从 Lua 上下文中卸载代码

转载 作者:太空宇宙 更新时间:2023-11-04 13:43:09 26 4
gpt4 key购买 nike

此处的上下文是嵌入在 C++ 应用程序中的 Lua。

我使用了函数luaL_loadbuffer()很长一段时间,它工作正常。

但是,现在我有卸载的需求。我为什么要这样做?

我有内部 C++ 映射,我想用 Lua 脚本对其进行初始化,但是一旦 C++ 映射被初始化,我就会丢弃每个 Lua 脚本。 Lua 表使用更多的内存(7 兆与 C++ 的 200k)并且不能执行像 lower_bound() 这样的功能。和 upper_bound()我需要的。

map 元素是std::pair<uint32_t, uint32_t> ,本质上是以二进制形式存储的 ip 地址。

有什么方法可以在执行一次后卸载已加载到 Lua 上下文中的 Lua 代码?

最佳答案

如果unload 是指撤消运行某些 Lua 代码的效果,那么除非您在运行代码之前保存宝贵的状态,否则无法完成。这可以通过对代码进行沙盒处理来完成。

如果你只是想删除一个 Lua 表,将所有对它的引用设置为 nil 并让该表自动或手动进行垃圾回收。

关于c++ - 如何从 Lua 上下文中卸载代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27009588/

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