FreeHost.com.UA
Апреля 25, 2018, 04:03:44 am *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
Новости: Распродажа серверов http://freehost.com.ua/forum/index.php?topic=2093.0
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: [1]
  Печать  
Автор Тема: APC php, очень медленно работает  (Прочитано 2451 раз)
Thorin
Full Member
***

Karma: 2
Сообщений: 138


Просмотр профиля
« : Января 15, 2012, 02:45:56 pm »

Есть многомерный массив который весит больше 2мб
Почему если его сохранять обычным способом (писать в файл) а не в память АПЦ скрипт выполняется быстрее?

APC Взято с ГУГЛА)
Код:
?php
class CacheAPC {

    var $iTtl = 600; // Time To Live
    var $bEnabled = false; // APC enabled?

    // конструктор
    function CacheAPC() {
        $this->bEnabled = extension_loaded('apc');
    }

    // получаем данные с памяти
    function getData($sKey) {
        $bRes = false;
        $vData = apc_fetch($sKey, $bRes);
        return ($bRes) ? $vData :null;
    }

    // сохраняем данные в память
    function setData($sKey, $vData) {
        return apc_store($sKey, $vData, $this->iTtl);
    }

    // удаляем данные с памяти
    function delData($sKey) {
        $bRes = false;
        apc_fetch($sKey, $bRes);
        return ($bRes) ? apc_delete($sKey) : true;
    }
}


$oCache = new CacheAPC();
$oCache->setData('my_object', $arr);
$arr1 = $oCache->getData('my_object');


И обычным способом (взято с ДЛЕ)
Код:
function set_vars($file, $data) {
   
   $fp = fopen( '' . $file . '.php', 'wb+' );
   fwrite( $fp, serialize( $data ) );
   fclose( $fp );
   
   @chmod( '' . $file . '.php', 0666 );
}

function get_vars($file) {
   
   return unserialize( @file_get_contents( '' . $file . '.php' ) );   
   
}

set_vars ( "testing", $arr );
$arr2 = get_vars ( "testing" );
Что выходит
Запись АПЦ 0.513060
Чтение АПЦ 0.532466
Запись в файл 0.281605
Чтение файла 0.000586

Почему APC такой медленный?
APC работает нормально, в User Cache Entries присутствует запись my_object

Ну и на всяк настройки APC)
Код:
apc.enabled=1
apc.shm_segments=1
apc.shm_size=256M; 256
apc.ttl=180
apc.user_ttl=120
apc.gc_ttl=120
apc.num_files_hint=1024
apc.mmap_file_mask=/tmp/apc.XXXXXX
apc.enable_cli=1
apc.rfc1867=1
apc.localcache=1
apc.file_update_protection=30
apc.include_once_override=1
apc.stat_ctime=1
apc.slam_defense=Off
;apc.lazy_classes=1
;apc.lazy_functions=1

FreeBSD 8.1
PHP 5.2.17 with Suhosin-Patch 0.9.7 (cli)
APC Version 3.1.9
apache-itk-2.2.19
Записан
Страниц: [1]
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.16 | SMF © 2006-2011, Simple Machines Valid XHTML 1.0! Valid CSS!