[Date Prev][Date Next][Thread Prev][Thread Next]
- Subject: Re: A fast array implementation
- From: "Joshua Jensen" <jjensen@...>
- Date: Fri, 20 Apr 2001 23:11:21 -0600
For some reason this didn't make it to the list earlier...
From: "Russell Y. Webb" <firstname.lastname@example.org>
> > By providing an array type, Lua can preallocate an array of TObjects (or
> > whatever they are) based on the size specified by the user. To insert
> > object into that array is as simple as array[index] = TObject.
> > equally as simple. Lua will run far quicker when using indexed access
> > make it perform even better in the benchmarks.
> Can't an array type be defined from C? It might not have all the best
> syntactic integration with lua, but having a arraylib.c to add to lua
> be great and if everyone used it then it could become standard. I'd use
> in some cases, but don't see any reason to go adding it to the standard
> language now.
Yes, an array type could be defined from C. To access it, as you
mentioned, would involve C callbacks. I would wager the overhead for
making the call to the C callback would be larger than the overhead of
the existing hashing mechanism.
A better solution would be actual VM instructions... ARRAYCREATE,
ARRAYGET, and ARRAYSET should be fine. ARRAYCREATE would create a fixed
size array, based on the size pushed to the stack. ARRAYGET/SET would
simply take the array pointer and index on the stack and retrieve/set
the value. Shouldn't be too much slower than C.
A mechanism like this would be vastly superior in speed to a table for