VG
Size: a a a
VG
S
table.insert
и table.remove
— медленные
, а тут оно умножается на количество полей). Комфорт использования — близок к нулевому. Расширяемость новыми полями тоже страдает, если какие-то поля пусты — образуются дырки, от которых ничего хорошего.a
table.insert
и table.remove
— медленные
, а тут оно умножается на количество полей). Комфорт использования — близок к нулевому. Расширяемость новыми полями тоже страдает, если какие-то поля пусты — образуются дырки, от которых ничего хорошего.S
S
S
{
longlongkey1 = "foo",
longlongkey2 = "bar",
}
Будут иметь объём только собственных значений "foo" и "bar", плюс пары указателей на строки "longlongkey1"
и "longlongkey2"
. Луа использует строковый буфер, так что экономия памяти на параллельных массивах минимальна. S
str[2] = "f"
.a
a
S
a
S
a
S
S
AY
S
AY
TString **p = G(L)->strcache[i];
for (j = 0; j < STRCACHE_M; j++) {
if (strcmp(str, getstr(p[j])) == 0) /* hit? */
return p[j]; /* that is it */
}