Бочонок
http://frontender.info
Странное поведение ф-й работы с общей памятью. (shmop,shm)
Приятного времени суток.
Столкнулся с тем печальным фактом что ни apc ни memcash на виртуальном хостинге выклянчить у провайдера проблематично.
Написал класс для работы с общей памятью...
И вот выложив все на хостинг обнаружил что ничего не работает хотя на тестовом хосте все было нормально.
Написал тестовые скрипты (приведены в конце поста).
В результате само обращение к общей памяти работает. Но вот при повторном вызове того же скрипта мы все равно не видим сегмента памяти созданного при первом вызове и данных в нем.
У меня складывается такое подозрение, что общая память уникальна для каждого запуска скрипта. Что в принципе - бред. Про что я забыл? Где промахнулся? Подскажите пожалуйста.
Хостинг mirohost.net
http://amarillis.com.ua/shm.php
http://amarillis.com.ua/shmop.php
-~{}~ 09.09.08 14:08:
Кто нибудь? Подскажите...
Приятного времени суток.
Столкнулся с тем печальным фактом что ни apc ни memcash на виртуальном хостинге выклянчить у провайдера проблематично.
Написал класс для работы с общей памятью...
И вот выложив все на хостинг обнаружил что ничего не работает хотя на тестовом хосте все было нормально.
Написал тестовые скрипты (приведены в конце поста).
В результате само обращение к общей памяти работает. Но вот при повторном вызове того же скрипта мы все равно не видим сегмента памяти созданного при первом вызове и данных в нем.
У меня складывается такое подозрение, что общая память уникальна для каждого запуска скрипта. Что в принципе - бред. Про что я забыл? Где промахнулся? Подскажите пожалуйста.
Хостинг mirohost.net
http://amarillis.com.ua/shm.php
PHP:
<?php
$id = shm_attach("sha1('кэш')");
echo "<br/>".shm_get_var($id,sha1('значение1'));
if(!shm_put_var($id,sha1('значение1'),'значение 1')){
echo '<br/>переменная не записана';
}
echo "<br/>".shm_get_var($id,sha1('значение1'));
shm_detach($id);
?>
PHP:
<?php
$size=shmop_open(0,'c',0777,PHP_INT_SIZE);
$id=shmop_open(1,'c',0777,2097152);
$var_size = (int)shmop_read($size,0,PHP_INT_SIZE);
if($var_size==0){
echo "<br/>no var found";
}else{
$var_value = shmop_read($id,0,$var_size);
echo "<br/>".$var_value;
}
$value='нечто';
shmop_write($id,$value,0);
shmop_write($size,(int)strlen($value),0);
$var_size = (int)shmop_read($size,0,PHP_INT_SIZE);
if($var_size==0){
echo "<br/>no var found";
}else{
$var_value = shmop_read($id,0,$var_size);
echo "<br/>".$var_value;
}
?>
Кто нибудь? Подскажите...
