Обновить
32

Управление проектами в IT

10
Подписчики
Отправить сообщение
Собственно более просто: При указании времени=0 берется переменная protected $timeout = 30;
В общем метод Set в MemcacheTag.php показывает следующее(при CacheTag::SetTimeout(1);):
this->memcache_obj->set(product, Array,0, 60 * 1);
this->memcache_obj->set(_resetTags, Array,0, 60 * 0);

И следующее(CacheTag::SetTimeout(0);):
this->memcache_obj->set(product, Array,0, 60 * 31);
this->memcache_obj->set(_resetTags, Array,0, 60 * 0);

И еще вопрос. Зачем у нас при каждом запросе чего-то из кеша происходит два запроса а потом еще и замена?

Т.е. как-то так:
this->memcache_obj->get(_resetTags);
this->memcache_obj->get(product);
а потом мы всё равно:
this->memcache_obj->replace(_resetTags, Array, 0, 0);
Действительно исправлено.
Баг репорт #2.
Пример:
error_reporting(E_ALL);
require_once("CacheTag.class.php");

function f()
{
  return rand(1,1000);
}

CacheTag::SetBackend(CacheTag::BACKEND_MEMCACHE);
CacheTag::SetFunction('f');
CacheTag::SetTags(CacheTag::TAG_PRODUCT);
//CacheTag::SetParam(CacheTag::PARAM_ID, 2);
CacheTag::SetTimeout(0);
$var=CacheTag::Fetch();
echo $var;
CacheTag::Flush();


* This source code was highlighted with Source Code Highlighter.


По-идее лимит времени- 0, в конце стоит очистка кэша. Но я уже пятую минуту обновляю и вижу всё те же 546. Меняются только при перезагрузки memcache.

PS: Система та же, конфиг из свн, код класса и моста для memcache не тронуты.
Видимо имеется в виду спагетти-код. Они когда варятся перемешиваются сильно.
Не два. Там больше на самом деле.
1. Обработка регулярного выражения, в котором есть класс символов типа \w (буква). В однобайтовой кодировке это один-два такта + допускает параллельное вычисление, в utf-8 несколько десятков оперций сравнения.
2. Таблица преобразования в 1251 – это 256 байт, которые помещаются в кэш современного процессора, а таблица преобразования для utf-8 вообще не существует в виде одной таблицы, это куча таблиц и соотв. условных переходов.

Так что зря человека заминусовали. Он говорит дело и если для него так важны накладные расходы и он не испытывает проблем с AJAX, то всё верно. Для его кириллического сайта cp1251 оптимальна.
//хардкод «магических чисел»— это дурные привычки, которых надо избегать
Не покушайтесь на любимую 0x5f375a86! :)
И еще баг репорт(помимо того, что класс для кеширования не кеширует):

example.php:
Notice: Undefined index: user in CacheTag.class.php on line 290
Warning: array_diff() [function.array-diff]: Argument #1 is not an array in CacheTag.class.php on line 290
Что-то странное. Дефолтный конфиг из свн и следующий код:
error_reporting(E_ALL);
require_once("CacheTag.class.php");

function f()
{
  return 2;
}

CacheTag::SetBackend('Memcache');
CacheTag::SetFunction('f');
CacheTag::SetTags(CacheTag::TAG_PRODUCT);
$res = CacheTag::Fetch().'<br>';

echo $res;



Генерируют вот такую цепочку вызовов:
SetBackend abstract class CacheTag
SetFunction abstract class CacheTag
GetInstance abstract class CacheTag
ImportBackend abstract class CacheTag
Memcache construct
__construct abstract class CacheTag
Memcache Get
SetTags abstract class CacheTag
GetInstance abstract class CacheTag
Fetch abstract class CacheTag
GetInstance abstract class CacheTag
Prepare abstract class CacheTag
GetVarName abstract class CacheTag
Memcache Get
IsRegistered abstract class CacheTag
GetFunctionValue abstract class CacheTag
ApplyTagsChange abstract class CacheTag
Memcache Set
ResetSettings abstract class CacheTag
2
__destruct abstract class CacheTag
SaveResetTags abstract class CacheTag
Memcache Replace



И так при каждом обновлении страницы. Т.е. из кэша ничего не берется.
Я что-то делаю не так?

PS: 5.2.13, memcache 2.2.5.
Вы нумеруете версии 0.х.х просто потому что нравится так или планируется релиз 1.0 через N времени?
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Я это понимаю. Потому и попросил пример со сложным шаблонам. Так уж получилось, что голова пока не мыслит не о каких трансформациях. Да, есть xml- с ним приятно работать как с callback`ами, есть html- на нём все собаку сьели, есть xslt, о котором много говорят, но в моей сфере он используется лишь в одном проекте(однако и в нём есть быстрая кнопка-'хочу smarty').

Зачем же кричать?
Я немного не в статьях. Да и мыслить категориями страниц имхо прошлый век. В умах людей во всю эпичное блочное кэширование и вся сила его с нами.

Как оно у меня: есть страница, побитая на блоки(назовём её главная). В странице три динамических элемента и туева хуча настраиваемых(телефоны, тайтлы, тексты). Так зачем нам по 6 тысяч раз на дню псевдо-статику перерисовывать при том, что мы знаем, что она редко изменяется? Такие части сохраняются в кэш и успешно из него тыкаются, пока кто-то что-то на псевдо-статике не изменит. Получается шустро.
Так оно ж не вечное. Поставил лимит в 20 минут и будь уверен, что 20 минут нагрузку не жди.

PS: Нафиг на сайтах-визитках вообще шаблонизатор? :D
Увеличил до 4 тысяч интераций. Пропорции результата те же.
Может быть разовьем идею тестов и вы покажите действительно сложный шаблон, на котором будет иметь место проводить тесты?
Оно не будет быстрее голого php.

Однако переучивать дизайнеров и верстальщиков дорогого стоит. Посему- пока невозможно. Эхх.
PHP:
total(усредненно за 20 пробегов): 93

Smarty:
total(усредненно за 20 пробегов): 970

XSLT:
total(усредненно за 20 пробегов): 90

Вывод- молодцы те люди, что писали php_xsl.dll.
О, узрел знакомые лица.
tenshi, запакуй исходники из теста куда-нибудь и дай поиграть. Авось другие результаты получятся :)
//Что касается субъективной оценки 2х технологий, то я бы в любом случае предпочел XSLT, т.к. это
//стандарт, рекомендованный W3C и имеющий официальную поддержку консорциума, как минимум.

А что и с чем вы сравниваете?
Полазил по форуму- оно еще и замечательно поддается моддингу, люди активно работают.
Для желающих скачать: размер архива 170 мб.
Интересный коктейль. Теперь лишь понять насколько удобно и интересно играть.
Автор, вы не поделитесь впечатлениями?

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность