On 01/12/2014 03:35 AM, quehan wrote:
> I think it is 1G for all lua_States in one process.
> 
> 
> 在 2014-1-12,上午1:39,James Peach <jpe...@apache.org> 写道:
> 
>> On Jan 10, 2014, at 8:16 PM, quehan <que...@taobao.com> wrote:
>>
>>> hi, all:
>>>
>>> As far as I know, LuaJIT can only use 1G memory at most, so ts-lua is 
>>> suggested to use Lua rather than LuaJIT.
>>
>> That is 1G for each lua_State, right? Since you are allocating 2048 states, 
>> have you found this to be a problem in practice?
>>
>>>
>>> I found Lua5.2 is very different with Lua5.1, so Lua5.2 is not supported 
>>> now, and I didn't have time to fix it yet, may be I will fix it later.
>>>
>>>
>>> <bla bla bla>

IIRC, the limit is 2GB, not 1GB, but why on earth would you ever, EVER
want to have a state with 2GB of allocated Lua objects? Your code would
slow to a grinding halt! If you need to allocate more with JIT, you use
FFI and call (ts)malloc/free, it would be folly to try to manage
anything this large with native Lua objects. Ideally, you would handle
'control' data within Lua and 'real' data within TS, maybe, AT MOST ½MB
of data per state for some transformation or advanced math or whatever.

I'm sorry to say, but if there ever comes a time where you need to
allocate more than 2GB, or, heck, even 1GB, inside Lua itself, then
you're doing something really wrong. Lua should be doing the business
logic while TS does the heavy resource work, it should never be the
other way around.

With regards,
Daniel.

Reply via email to