powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) Управление разделяемой памятью
17 сообщений из 17, страница 1 из 1
(PHP) Управление разделяемой памятью
    #38535273
Фотография YuriyB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
добрый день

для сохранения разных php arrays которые должны использоваться
разными php процессами я решил использовать функции shmop http://www.php.net/manual/ru/book.shmop.php

есть несколько вопрос по теме

1.
Код: php
1.
shmop_open($id, $permissions, $mode, $size)



- как назначается $id? если я выберу $id от 1 до 12, т е для каждого php array номер так будет нормально ?
- какой смысл имеет permissions при $mode = 'a'
- буду рад советам бывалых кто уже этим пользовался




http://eurweb.blogspot.com - мой блог блокнот
...
Рейтинг: 0 / 0
(PHP) Управление разделяемой памятью
    #38536034
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы понимаете, что попытка всунуть array хоть куда-нибудь обязательно приведет к вызовам serialize/unserialise и вот на это и будут тратиться основные ресурсы ?

Но почему бы не воспользоваться xcache, apc и прочими кешами ?
У xcache и apc нулевые "сетевые затраты". Фактически он работает поверх эти вот функций, которые вы планируете использовать.
если нужно стильномодномолодежно - memcache у всех на слуху.
...
Рейтинг: 0 / 0
(PHP) Управление разделяемой памятью
    #38536116
seejil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuriyB,

от 1 до 12 можно или в 16 виде. мод a означает чтение. Вы можете посмотреть здесь http://www.php.net/manual/ru/function.shmop-open.php
...
Рейтинг: 0 / 0
(PHP) Управление разделяемой памятью
    #38536209
Фотография YuriyB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
seejil,


seejilот 1 до 12 можно или в 16 виде.
а почему так мало до 12 ?


seejilмод a означает чтение

что мода а означает чтение это понятно вот для чего там $permissions вот что непонятно
...
Рейтинг: 0 / 0
(PHP) Управление разделяемой памятью
    #38536211
Фотография YuriyB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netwind,

netwindВобязательно приведет к вызовам serialize/unserialise ?
я сделаю без serialize/unserialise
netwindне воспользоваться xcache, apc и прочими кешами

на это есть свои причины.

было бы инетесен реальный опыт по php shmop vs shm
...
Рейтинг: 0 / 0
(PHP) Управление разделяемой памятью
    #38536214
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuriyBseejil,


seejilот 1 до 12 можно или в 16 виде.
а почему так мало до 12 ?

потому что вам надо прочитать, например, такую книжку http://www.books.ru/books/unix-vzaimodeistvie-protsessov-23626/
А толку не очень много по сравнению с банальщиной типа memcache. Так имеет ли смысл мучатся ?
...
Рейтинг: 0 / 0
(PHP) Управление разделяемой памятью
    #38536218
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuriyBnetwind,

netwindВобязательно приведет к вызовам serialize/unserialise ?
я сделаю без serialize/unserialise

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


авторбыло бы инетесен реальный опыт по php shmop vs shm
Эти функции php копируют традиционные интерфейсы unix. Так что можете читать мануалы и книжки - их масса и даже на русском. И все описывают обычные программы на C или C++.
В такой обычной программе массив это непрерывный кусок памяти.
А как вы из этого куска памяти создадите массив в php, который не является в общем случае куском памяти, а некая структура из массы ссылок ?
...
Рейтинг: 0 / 0
(PHP) Управление разделяемой памятью
    #38536454
Фотография YuriyB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuriyB,


YuriyBчто мода а означает чтение это понятно вот для чего там $permissions вот что непонятно

сразу не заметил

php.net/manual Замечание:

Обратите внимание: Третий и четвертый параметры должны быть указаны как 0, если необходимо получить доступ к существующему участку памяти.
...
Рейтинг: 0 / 0
(PHP) Управление разделяемой памятью
    #38536464
Фотография YuriyB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netwind,
netwindИ вы уже знаете каким способом это сделаете?


да, запишу в конфиг размер элемента(ов) array
И
Код: php
1.
shmop_read(ID, $size_element*$index, $size_element);
...
Рейтинг: 0 / 0
(PHP) Управление разделяемой памятью
    #38536545
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuriyB, не совсем понятно. Вы собираетесь хранить в таком массиве только целые числа или строки фиксированной длины ?
Ведь массив в php - это набор перекрестных ссылок туда-сюда и в непредсказуемом порядке. Он же ассоциативный. Он не такой как в C/C++/паскале и тд.

Хотелось бы и мне иметь какое-то расширение "упаковывающее" массив. Таким образом, обычный код php мог бы нормально работать, при условии, что он не модифицирует массив. Такой интерфейс работал бы быстрее чем любой существующий сейчас.
...
Рейтинг: 0 / 0
(PHP) Управление разделяемой памятью
    #38536579
Фотография YuriyB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netwind,

netwindВы собираетесь хранить в таком массиве только целые числа или строки фиксированной длины ?

строки фиксированной длины(ну и числа как строки)



netwind"упаковывающее" массив.

можно pack()/unpack() применить
...
Рейтинг: 0 / 0
(PHP) Управление разделяемой памятью
    #38536638
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuriyBnetwind,

netwindВы собираетесь хранить в таком массиве только целые числа или строки фиксированной длины ?

строки фиксированной длины(ну и числа как строки)


ok.
По-прежнему считаю, что вам было бы проще использовать xcache и apc. Скорость работы сравнима, а возни намного меньше.



netwind"упаковывающее" массив.

можно pack()/unpack() применить[/quot]
это не о том.
...
Рейтинг: 0 / 0
(PHP) Управление разделяемой памятью
    #38536703
Фотография YuriyB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netwind,


netwindСкорость работы сравнима, а возни намного меньше.

согласен
но мы не ищем простых путей
...
Рейтинг: 0 / 0
(PHP) Управление разделяемой памятью
    #38536723
Фотография YuriyB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netwind,
netwindСкорость работы сравнима, а возни намного меньше.
да зато потом будет меньше возни enduserу с установкой Чcache и будет
работать там где Чcache нет и не будет
...
Рейтинг: 0 / 0
(PHP) Управление разделяемой памятью
    #38536770
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuriyB, ну с такими аргументами вам вообще следовало бы использовать mysql и не выпендриваться
shmop тоже может быть выключена.
вот я быстренько пробежался по списку phpinfo крупных хостеров:

bluehost - есть
reg.ru - есть
nic.ru - нет
агава - нет
timeweb -нет
...
Рейтинг: 0 / 0
(PHP) Управление разделяемой памятью
    #38536874
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netwind,

Это - не аргумент.
Меня тоже как-то просили чё-то написать под шмоп. Если хостинг свой (только под юниксом), и доступ к серверу, как к себе домой, то почему бы и нет?
...
Рейтинг: 0 / 0
(PHP) Управление разделяемой памятью
    #38536881
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSerge, потому что в этом случае вы тут уже получаете возможность включить более популярные memcache, xcache и тд.
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) Управление разделяемой памятью
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]