[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