Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: PHP - сложные вычисления

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: как правильно настроить php
lifjeoy
Отправлено: 10 Декабря, 2014 - 16:44:05
Post Id


Новичок


Покинул форум
Сообщений всего: 1
Дата рег-ции: Дек. 2014  


Помог: 0 раз(а)




Добрый день,

генерируем карты, много карт, большие карты. Наносим на подложку разнообразные данные, дороги, подписи и тд.

#top показывает, что процесс никогда не занимает более 1 ядра, хотя на машине их 8.
592 root 1 102 0 1079M 864M CPU0 0 10:15 95.36% php

Ввиду чего, общая задача выполняется много дольше, чем хотелось.

Есть ли возможность настроить php нужным образом?
Возможность переписать код под многопоточность рассматривается, но ищется другое возможное решение, средствами администрирования ОС.

mysql же прекрасно занимает и 100 и 200% процессорного времени.

Спасибо
 
 Top
MiksIr
Отправлено: 10 Декабря, 2014 - 16:47:10
Post Id


Забанен


Покинул форум
Сообщений всего: 378
Дата рег-ции: Сент. 2014  


Помог: 10 раз(а)

[+]


mysql многопоточный
или переписать на треды или просто распараллелить задачи на процессы


-----
self-banned
 
 Top
esterio
Отправлено: 10 Декабря, 2014 - 16:53:20
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




ПХП не многопоточен и даже не многозадачен. вам ни за что не получиться разбить на два ядра. как вариант вы можете запустить n-количество воркеров, которые будуть работать на n-количестве ядер в фоне и опрашивать статус например AJAX-ом. для этого нужно будет еще дополнительно использовать менеджер задач который возьмет на себя контроль исполнения, очередь и балансировку нагрузо (как пример Gearman) и супервизор который сможет конролировать запуск и перезапуск при падении воркеров Supervisor/ так же еще есть ReactPHP http://habrahabr.ru/post/220393/. но насколько я помню он еще в стадии бета и работает только на 5.5 версии. как по мне так самый лучшый вариант переписать на ЯП более подходящем для паралельных вичислений (например Python).

http://habrahabr[dot]ru/post/179399/ также почитайте здесь. там есть и про утечки памяти в ПХП
 
 Top
Мелкий Супермодератор
Отправлено: 10 Декабря, 2014 - 16:56:00
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




lifjeoy пишет:
mysql же прекрасно занимает и 100 и 200% процессорного времени.

Суммарно - да. Но один запрос тоже только однопоточный.

lifjeoy пишет:
другое возможное решение, средствами администрирования ОС.

Найдёте - смело получайте нобелевскую премию. Все производители процессоров с руками оторвут.
Многопоточным должен быть сам алгоритм. Следовательно, код. Произвольно-взятый код невозможно распараллелить.


-----
PostgreSQL DBA
 
 Top
MiksIr
Отправлено: 10 Декабря, 2014 - 16:56:04
Post Id


Забанен


Покинул форум
Сообщений всего: 378
Дата рег-ции: Сент. 2014  


Помог: 10 раз(а)

[+]


esterio пишет:
ПХП не многопоточен

php может быть многопоточным если скрипт многопоточен
http://php.net/manual/ru/book.pthreads.php

(Отредактировано автором: 10 Декабря, 2014 - 16:56:32)



-----
self-banned
 
 Top
DeepVarvar Супермодератор
Отправлено: 10 Декабря, 2014 - 17:25:59
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




MiksIr пишет:
http://php.net/manual/ru/book.pthreads.php
Атлищна! Пойду ось на пыхе писать!
 
 Top
esterio
Отправлено: 10 Декабря, 2014 - 17:48:52
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




MiksIr пишет:
php может быть многопоточным если скрипт многопоточен

Шутки шутками, но было так все просто не расписивал я бы вам то что выше.
 
 Top
MiksIr
Отправлено: 10 Декабря, 2014 - 18:23:22
Post Id


Забанен


Покинул форум
Сообщений всего: 378
Дата рег-ции: Сент. 2014  


Помог: 10 раз(а)

[+]


esterio пишет:
Шутки шутками, но было так все просто не расписивал я бы вам то что выше.

Угу, треды не тривиальная задача, факт ;)


-----
self-banned
 
 Top
OrmaJever
Отправлено: 10 Декабря, 2014 - 21:46:50
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




Да в php есть std::thread, да он реально работает (сам тестил), но выражение "php" и "сложные вычисления" из-за этого ближе не стали. Нужно начать с того что php это язык для динамической генерации веб страничек, куда на нём сложные вычисления делать? Если есть такая задача то разве нет денег найти программиста на питоне, джаве или чём нибудь ещё?
Нужно же совесть иметь что бы на php писать сложные вычисления.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Администрирование *nix »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB