Comment avez-vous pré-de la taille d'un tableau en Lua?

J'ai un programme Lua qui semble être plus lent qu'il devrait être. Je soupçonne que le problème c'est que je suis ajoutant des valeurs à un tableau associatif, un à un, et le tableau a pour allouer de la mémoire à chaque fois.

Il ne semble pas être une table.setn fonction, mais il n'a pas sous Lua 5.1.3:

stdin:1: 'setn' is obsolete
stack traceback:
        [C]: in function 'setn'
        stdin:1: in main chunk
        [C]: ?

Je déduis de la recherche sur Google je n'ai fait que cette fonction a été déprécié en Lua 5.1, mais je ne peux pas trouver ce que (le cas échéant) a remplacé la fonctionnalité.

Savez-vous comment pré de la taille d'un tableau en Lua?

Sinon, est-il un autre moyen d'éviter l'allocation de la mémoire lorsque vous ajoutez un objet à un tableau?

J'ai lu cela pour le plaisir l'autre jour, mais si vous êtes intéressé par lua performance, vous devriez consulter ce document sur la mise en œuvre de la lua, elle va au-dessus de quelques structures de données internes. lua.org/doc/jucs05.pdf

OriginalL'auteur Jon Ericson | 2008-09-23