luajit内存限制解决方案

luajit内存限制解决方案,lua,out-of-memory,luajit,Lua,Out Of Memory,Luajit,我一直在开发一个实用程序,它可以明智地使用表,我面临一个问题: Luajit可怕的2GB内存限制。我正在使用luajit 2.0.5。我正在处理非常大的平面文件。我试过强迫lua收集垃圾;它能起一些作用,但会继续增长,最终因“内存不足”而崩溃 我研究并发现解决这个问题的一种方法是使用luajit ffi接口在lua控件之外分配内存。伟大的到底是怎么回事 我做了一些研究,发现了以下链接: 这实际上展示了如何使用C库;这并不是我想要的,因为我希望从FFIC接口分配内存,这样脚本就不会中断 我再看了

我一直在开发一个实用程序,它可以明智地使用表,我面临一个问题:

Luajit可怕的2GB内存限制。我正在使用luajit 2.0.5。我正在处理非常大的平面文件。我试过强迫lua收集垃圾;它能起一些作用,但会继续增长,最终因“内存不足”而崩溃

我研究并发现解决这个问题的一种方法是使用luajit ffi接口在lua控件之外分配内存。伟大的到底是怎么回事

我做了一些研究,发现了以下链接:

这实际上展示了如何使用C库;这并不是我想要的,因为我希望从FFIC接口分配内存,这样脚本就不会中断

我再看了看,发现:

看起来RaptorJIT和OpenResty Luajit2都有补丁可以完全避免这种情况。除此之外。看起来luaJIT测试版也有


所以问题是,不需要重新写入就可以通过2GB限制的最聪明的方法是什么?我终于让代码按我想要的方式工作了,而且速度非常快,似乎没有bug——除了讨厌的2GB限制,我在使用20GB输入文件进行测试之前没有发现这个限制-(

只需使用最新的LuaJIT 2.1,它没有2Gb限制问题。感谢您的确认;现在,如果我可以在Windows上编译它……2.0编译得很好。2.1 beta3没有那么多。我使用git bash shell进行编译;MSVC对我不起作用,也不会使用MinGW64。LuaJIT构建页面列表MSVC——我根本不知道miliar,但是包含的beta3批处理文件不适用于MSVC的社区版。不过,克隆repo并运行make-j8非常有效。