Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Memcache vs FileCache


Автор: Muerto 28.2.2011, 23:52
Код

$test = array_fill(0, 10000, 'banana');
$memcache = new MemoCache();
 Benchmark::startTimer();
$memcache->setData('key',$test);
$data=$memcache->getData('key');
echo Benchmark::showTimer();


В среднем 0.0004019737

Код

$test = array_fill(0, 10000, 'banana');
$cacheClass=new IgbinaryFileCache();
 Benchmark::startTimer();

$cacheClass->setData('testI',$test);
$data=$cacheClass->getData('testI');
echo Benchmark::showTimer();


В среднем  0.0008068085

Код

$test = array_fill(0, 10000, 'banana');
$cacheClass=new VarExportCache();
 Benchmark::startTimer();

$cacheClass->setData('testI',$test);
$data=$cacheClass->getData('testI');
echo Benchmark::showTimer();


В среднем  0.0009219646

Код

$test = array_fill(0, 10000, 'banana');
$cacheClass=new JsonFileCache();
 Benchmark::startTimer();

$cacheClass->setData('testI',$test);
$data=$cacheClass->getData('testI');
echo Benchmark::showTimer();


в среднем 0.0008590221

Код

$test = array_fill(0, 10000, 'banana');
$cacheClass=new StandartFileCache();//serialize()
 Benchmark::startTimer();

$cacheClass->setData('testI',$test);
$data=$cacheClass->getData('testI');
echo Benchmark::showTimer();



в среднем 0.0008571148

Memcache выигрывает, я думаю что с igbinary как сериализатор, можно ускорить ещё

Автор: gta4kv 28.2.2011, 23:56
исключительно гениальный тест.


facepalm.jpg

Автор: Muerto 28.2.2011, 23:57
gta4kv, Я для своих нужд тестирую, что бы знать что лучше
И реально удивлен , я думал Memcache летать будет

Автор: gta4kv 1.3.2011, 09:45
перефразирую.

твой тест - тупой.


Сначала загрузи I/O жесткого диска до отказа, а потом проверяй скорость работы. Локальный тест, с абсолютно "свободным" диском результатов никаких не даст.

Автор: solenko 1.3.2011, 09:52
Цитата(gta4kv @  1.3.2011,  08:45 Найти цитируемый пост)
Сначала загрузи I/O жесткого диска до отказа, а потом проверяй скорость работы. Локальный тест, с абсолютно "свободным" диском результатов никаких не даст. 

Истина!
Дело в том, что у фаловой системы есть свой кеш, с которым вы по факту и работали. Вот только управлять им как-бы нет возможности особой. Потому, если речь идет о гигабайтах кеша, то это нескоко неудобно )
Ну и кроме того, можете попробовать сравнить производительность нескольких серверов memcache с несколькими серверами, в которых диски для кеша смонтированы через NFS

Автор: Muerto 1.3.2011, 13:17
gta4kv, А с чего вы взяли что сервер локальный ? 
Тест тупой не потому что "сервер локальный"( а он не локальный, я в Израиле он в германии) и не загружен под предел( а может и да?),
А потому что я считал время генерации класса, У Memcache в конструкторе есть подключение к серверу, поэтому это не правильный тест.

НО по большому счету картина имхо да ясна для моих личных нужд

Я отредактировал первый пост с правильными результатами без объявления класса, что берет время но к делу не относиться(хотя если кешировать одну переменную то таки не имеет смысла мемкешем пользоваться)

Мемкэш быстрей любого другого в 2 раза, удивлен что вар экспорт такой медленный

Автор: gta4kv 1.3.2011, 13:28
Цитата

а может и да?),

Ну, судя по:
Цитата

Мемкэш быстрей любого другого в 2 раза


То это всё таки не загруженный сервер. Ибо в другом случае, результат был бы совсем другой.

Автор: Muerto 1.3.2011, 13:43
gta4kv, А результат совсем другой, вы мой пост не читали видно отредактированный, и мое сообщение

Автор: Muerto 2.3.2011, 00:20
Я пришел к выводу что если ваш скрипт генерируется за 0.01 секунд, то толку от memcached не будет  smile 
Потому что уж больно прожорливое подключение к серверу у него...

"кушает" все преимущество...

В моих тестах он быстрей... но если учесть подключение... и то что нужно кешировать допустим мало данных, то пользы никакой.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)