[devel] Re: cmdcache

Alexey Tourbin =?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Пн Сен 12 18:01:39 MSD 2005


On Mon, Sep 12, 2005 at 05:34:38PM +0400, Dmitry V. Levin wrote:
> > 1) Недостаточно хорошая функция хеширования.  Т.е. для some/file.txt
> > и some_file.txt получается один и тот же кеш.  Если mtime у этих двух
> > файлов отличается, то кеш каждый раз пересоздается, в противном случае
> > получается "самое ужасное": неверный результат из кеша.
> Тщательнее должен быть алгоритм квотирования.

Хочется это сделать исключительно средствами шелла - я даже готов пойти
на башизмы типа ${var//.../_}. :)  Если делать это sed'ом или чем-нибудь
таким, то каждое обращение к cmdcache будет замедляться fork+exec'ом,
а это удовольствие минимум на два порядка дороже встроенных команд.

> > 2) Изменение формата вывода cmd.  Опять получается неверный результат
> > из кеша.
> Надо следить за изменением cmd.

cmd может быть функцией!  Для этого cmdcache надо соурсить.  В этом вся
фишка -- если в кеше все хиты, то будет работать *очень* быстро.  То
есть всё в пределах одного процесса.

> 3) А что если cmd это wget -O -?  Хорошо ли кэшировать результат работы
> браузера удалённых ресурсов? :)

Да нет.  Речь о чем идет.  Что когда мы *явно* знаем, что команда имеет
вид `cmd [args...] path' и именно в таком виде мы используем эту команду
в скрипте, то в том же скрипте можно будет записать что-то вроде

. cmdcache ""		# дай функцию
alias rpmfile='cmdcache rpmfile'

rpmfile()
{
	f="$1"; shift
	...
}

# здесь будет "проксироваться"
for f; do rpmfile "$f"; done
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20050912/a381140d/attachment-0001.bin>


Подробная информация о списке рассылки Devel