![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| seka |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 2.4.2006 Репутация: нет Всего: нет |
Здравствуйте!
Есть следующая ситуация: два скрипта на PHP выполняются одновременно. Выполняются не моментально, каждый примерно по пол-минуты. Расположены на одном сервере, в одном каталоге. И в процессе работы им необходимо очень много раз обмениваться небольшим количеством информации. В настоящий момент обмениваются они через базу данных (MySQL). Т.е. один скрипт пишет туда, второй читает. В итоге выходит, что этот обмен занимает очень много времени..... получается, что очень много раз (несколько тысяч) порисходит запись в БД (фактически на жёсткий диск) и чтение. Возникла необходимость ускорить работу скриптов, а именно - ускорить обмен данными между ними. Первое, что приходит на ум - использовать опертивню память.... например, чтобы скрипт, который их запускает (т.е. обращается к ним через сокеты), выделял кусок памяти и передавал адрес этого куска обоим скриптам при вызове.... а они бы просто использовали эту ячейку вместо БД. Проблема только в том, что я не знаю как на PHP можно работать с оперативной памятью.... буду весьма признателен за полезные ссылки по существу, или за идеи альтернативного решения проблемы. Спасибо. |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 1 Всего: 260 |
есть механизм прямо так для совместного использования памяти - shared memory
но, возможно, это будет не лучшим способом. впрочем, лично передо мной такие задачи ещё не ставились, так что кроме ссылки в ман помочь ничем не смогу :( |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: нет Всего: 454 |
Хм...
То есть скрипты можно считать работающими... не то чтобы синхронно, но синхронизированно... Тогда я бы предложил внимательнее исследовать резоны, по которым это два скрипта, а не один. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 1 Всего: 73 |
Не могу не согласиться. А вообще, для подобных вещей есть С и демоны. В крайнем случае, можно использовать xcache/memcache как общее хранилище данных или обменник. -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
| Atlete |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 15.8.2007 Репутация: нет Всего: нет |
Могу предложить использовать Memcache,
или как вариант самому реализовать обмен данными ммежду скриптами через сокеты. Данные перед отправкой пропускать через serialize, прием - unserialize соответсвенно. Аналогичным образом можно и свой кеш написать через файлы теже. Использовать файлы. Принцип аналогичен как и с сокетами. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Для профи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |