подскажи как и где переключиться на сокет? пробовал в конфиге прописать как $config_options = array ( "cache_handler" => "cache.xPDOMemCached", 'memcached_server' => 'unix:///var/run/memcached/mem.socket', 'system_settings_memcached_server' => 'unix:///var/run/memcached/mem.socket', 'db_memcached_server' => 'unix:///var/run/memcached/mem.socket',

); не срабатывает нифига! хелп!)))

<?php $memcache = new Memcache; $memcache->connect('localhost', 11211) or die ("никак"); $time_start = microtime(true); for($i=0;$i<100000;$i++) { $memcache->set('key'.$i, 'проводим тест', false, 3600) or die ("Storing error"); } echo "запись: " . ( microtime(true) - $time_start ) . " s\n"; $time_start = microtime(true); for($i=0;$i<100000;$i++) { $get_result = $memcache->get('key' . $i); } echo "Чтение: " . ( microtime(true) - $time_start ) . " s\n"; $memcache->close(); проход 100 000 со сбросом памяти: запись: 5.7672691345215 s Чтение: 5.3566160202026 s запись: 5.5943441390991 s Чтение: 5.3589580059052 s запись: 5.6819629669189 s Чтение: 5.2641780376434 s запись: 5.1646101474762 s Чтение: 5.1912438869476 s проход 100 000 без сброса памяти: запись: 6.1878290176392 s Чтение: 6.0326571464539 s запись: 6.9359221458435 s Чтение: 5.4121189117432 s запись: 5.6705141067505 s Чтение: 6.7073588371277 s запись: 7.1592400074005 s Чтение: 6.2450869083405 s запись: 5.0880990028381 s Чтение: 6.321888923645 s запись: 7.1409819126129 s Чтение: 6.8770458698273 s ну а теперь на сокете проход 100 000 со сбросом памяти: запись: 5.4741218090057 s Чтение: 5.3309102058411 s запись: 5.6442830562592 s Чтение: 4.3651149272919 s запись: 4.7617130279541 s Чтение: 4.1906409263611 s проход 100 000 без сброса памяти: запись: 4.5509870052338 s Чтение: 3.9568049907684 s запись: 5.1981751918793 s Чтение: 5.3444979190826 s запись: 4.4540100097656 s Чтение: 3.6564660072327 s запись: 3.7425429821014 s Чтение: 3.6559550762177 s запись: 3.8162958621979 s Чтение: 3.8540539741516 s запись: 3.8235609531403 s Чтение: 3.7007210254669 s 500 000 проходов на сокете запись: 20.778402090073 s Чтение: 20.429618835449 s

Честно скажу: сам с сокетами особо не работал. Знаю, что сокеты быстрее всяко, но настройку этого всего не делал.

как думаешь, имеет смысл memcached на сокеты перекинуть? По идее еще прирост в скорости должен быть… вот эти настройки в обработчике меняю ('memcached_server', $options, 'localhost:11211') и по идее будет работать? или тут все сложнее устроено?

у меня не замуты, а универсальность :-)

Вы может быть не пользуетесь стандартными пакетами, но в наиболее распространённых инструкциях к Babel требуется создание отдельного контекста для языка. Я мало использую стандартные пакеты, но во-первых, я знаю хорошо сам MODX (а значит и любой пакет для меня — не проблема), а во-вторых, в свое время не мало пакетов использовал. Вы в данном случае путаете разные вещи. То, что бабел заставляет делать новые контексты, это еще не говорит, что мультиязычность на что-то влияет. Повторюсь: сама мультиязычность ни на что не влияет. А вот по какой причине созданы контексты — это вообще не важно (бабел вас заставил, или сами захотели), здесь есть факт — другие контексты. И вот про эти контексты и их влияние я написал выше — здесь влияние только связка TV-контекст-Источник файлов. Всего написанного выше достаточно. у вас в условии if с бухты-барахты появляется переменная $photo. Я как-то привык сперва объявлять переменную У меня написано: if($photo = $resource->getTVValue($TV_source) В данном случае не только происходит присвоение, но и ленивое объявление (сам php ее автоматом заводит). Ни логической, ни технической ошибки здесь никакой нет. А ваше желание объявлять переменные в шапке — это ваше право. Я тоже бывает переменные объявляю, но только тогда, когда они в коде расположены далеко друг от друга. Здесь переменная используется в двух строчках кода, близко расположенных друг к другу. Какой смысл их где-то объявлять? ЗЫ вообще я phpThumbOn установил. но что-то он не больно по скорости обгоняет phpThumbof по моим наблюдениям. Я не говорил ставить phpThumbOn. Я говорил про pThumb.

ну так бы сразу и сказал, что у тебя свои замуты)

При чем тут реальные файлы? При том, что здесь используется переменная $uri. Как я писал выше, если файл не найден, то УРЛ меняется на /index.php?q=$1 Повторюсь: # Именнованная лакация (правило) location @modx { # выполняем подмену на index.php rewrite ^/(.*)$ /index.php?q=$1 last; } Так как в большинстве случаев при ЧПУ файлов тупо нет, то постоянно и происходит подмена УРЛа на index.php. При этом и переменная $uri и принимает это значение. А если файл будет найден, то $uri не будет изменена, и будет иметь значение реально запрошенного адреса. Теперь понятно? Плагин конечно я тоже упростил. Изначально он был примерно такой: $query = '/';

        $query_str = str_replace('&amp;', '&',($_SERVER['QUERY_STRING']));  
        
        if(!empty($query_vars['q'])){
            $query .= $query_vars['q'];
            unset($query_vars['q']);
        }
        else{
            $query .= 'index.php';
        }
        $query .= "?";
        
        $vars = array();
        foreach($query_vars as $k => $v){
            $vars[] = "{$k}={$v}";
        }
        if($vars){
            $query .= implode("&", $vars);
        }
        $modx->log(1,  print_r($query, 1));
        $modx->cacheManager->set($query , $modx->resource->_output); И то, что сейчас в плагине осталось — это публичный упрощенный вариант, для которого твои замечания очень обоснованный. Но для меня мой nginx-конфиг более актуальный :-)

Про источники файлов почитаю, спасибо. Вы может быть не пользуетесь стандартными пакетами, но в наиболее распространённых инструкциях к Babel требуется создание отдельного контекста для языка. По-моему он иначе не работает. И ещё, я может глупость спрошу, но все-таки: у вас в условии if с бухты-барахты появляется переменная $photo. Я как-то привык сперва объявлять переменную, класть в неё что-то, а потом уже в условии проверять. ЗЫ вообще я phpThumbOn установил. но что-то он не больно по скорости обгоняет phpThumbof по моим наблюдениям.

ну в данном случае у тебя # устанавливаем ключ-переменную для запроса к мемкешу set $memcached_key "default/$uri?$args"; и все! это же касается только memcached. При чем тут реальные файлы? только лишняя переменная=index.php? в ключе