< STRCACHE_M; j++) {
if (strcmp(str, getstr(p[j])) == 0) /* hit? */
return p[j]; /* that is it */
}
Мдээ... И стоит оно того?
Это имеет определённые проблемы в luajit'е, там функция хеширования строк затрагивает только четыре(!) символа в них, в результате если у тебя в памяти миллиард почти одинаковых строк, то скорость работы с ними замедляется в тысячи раз. В ванильной луа такого нет. Но в целом, оно очень сильно экономит память. Ну смотри блин, размер десятков тысяч структур с кучей полей — зависит только от количества ключей а не их длины.
Обсуждают сегодня