Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - *LUA* | Индексация по сложному объекту (для кеширования)

Ответить
Настройки темы
Разное - *LUA* | Индексация по сложному объекту (для кеширования)
pva pva вне форума

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


Всем привет! Задача такая: Нужно посчитать, сколько раз вызывается одна и та же функция с одним и тем же набором параметров (и перечислить их)

Переформулировка: допустим, есть функция, которая возвращает таблицу.
Код: Выделить весь код
function make_obj(name, data)
  return {name=name, data=foo(data)}
end
Нужно сделать так, чтобы она создавала эту таблицу ровно один раз для каждого набора параметров {name, data}. А если такой набор уже создан, то возвращала созданный ранее набор.
Т.е. нужно организовать такое кеширование.

Сейчас делаю так: завожу глобальную таблицу, индексируемую конкатенированными параметрами в виде строк:
Код: Выделить весь код
_cache = {}
function make_obj(name, data)
  local id, have_cache
  id = string.format("%s %s", tostring(name), tostring(data))
  have_cache = _cache[id]
  if not have_cache then
    have_cache = {name=name, data=foo(data)}
    _cache[id] = have_cache
  end
  return have_cache
end
Есть ли способ кешировать проще?

Отправлено: 21:04, 26-02-2013

 


Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - *LUA* | Индексация по сложному объекту (для кеширования)

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Ошибка - LUA Fix и странности его работы myhouse_1991 Microsoft Windows 2000/XP 0 15-01-2011 15:03
[решено] Не применяется политика к объекту OU Diesel315 Microsoft Windows NT/2000/2003 8 03-09-2010 15:48
Lua-скрипт для SciTE добавляющий заголовок к функции (UDF) Creat0R AutoIt 5 30-05-2009 16:34
C/C++ - Отключение кеширования записи. Zenya Программирование и базы данных 2 24-11-2008 18:34
запрет кеширования страниц Vlad Drakula Вебмастеру 10 09-11-2004 03:13




 
Переход