[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Php производительность,процессор
Larik
Долго искал статью по производительности php,наконец нашел и там нашел очень важный момент:
Проигрыш в быстродействии PHP заметен в случае больших и сложных циклов, при обработке большого количества строк и т. д. Однако, заметьте, это единственный недостаток PHP, который будет все меньше и меньше проявляться по мере выхода более мощных процессоров, чтобы, в конце концов, вообще сойти на нет.
Я действительно заметил такой недостаток,у меня сложный цикл и он либо выполняется в течение 30 секунд либо вообще пишет что время истекло и выполняется только со второго прохода.
Но вот процессор был загружен в этот момент всего на 10 процентов?объясните что к чему,может настроить где-нибудь можно,чтобы php быстрее работал, или я вообще не так понял что то?

_____________
Чем больше круг знаний - тем больше длина окружности соприкосновения с областью неизвестного - тем больше степень моего незнания.
Лёгкость принятия решений и громкость слов (или число нулей ожидаемой прибыли) свойство окружностей сверхмалого диаметра, стремящихся к точке - к точке зрения.
T1grOK
Скорей всего скорость упирается в трансляцию, интерпретацию, компиляцию и в способ работы с памятью.
Если действительно нужно что то вычислить очень сложное, с множеством иттераций, то лучше написать на более быстром ЯП, а через PHP извлекать результаты.


_____________
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
S.Chushkin
Цитата (Larik @ 13.06.2013 - 15:38)
      Но вот процессор был загружен в этот момент всего на 10 процентов...

PHP однопотоковый, поэтому для Core i7 (4 ядра, 8 потоков), например, загрузка будет 10-12 процентов максимум.
Кроме того, избегайте вызовов процедур/методов в больший циклах. Ибо только на время вызова процедуры тратится около 1/миллионной секунды (на 3-х Гц ядре). Если цикл "тормозит", то замените процедуры на код PHP - можно ускорить в разы и даже в десятки раз, в зависимости от количества процедур в цикле.
п.с. Это если без всяких ухищрений, типа компиляторов и т.п.


_____________
Рекламка / ad.pesow.com Хрень / mr-1.ru
sergeiss
Цитата (Larik @ 13.06.2013 - 15:38)
Я действительно заметил такой недостаток,у меня сложный цикл  и он либо выполняется в течение 30 секунд либо вообще пишет что время истекло и выполняется только со второго прохода.

Ну, это обходится легко, одной командой smile.gif ПХП скрипт может работать очень долго, намного дольше 30 секунд.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Larik
Цитата (sergeiss @ 13.06.2013 - 22:01)
Цитата (Larik @ 13.06.2013 - 15:38)
Я действительно заметил такой недостаток,у меня сложный цикл  и он либо выполняется в течение 30 секунд либо вообще пишет что время истекло и выполняется только со второго прохода.

Ну, это обходится легко, одной командой smile.gif ПХП скрипт может работать очень долго, намного дольше 30 секунд.

Что за команда?

_____________
Чем больше круг знаний - тем больше длина окружности соприкосновения с областью неизвестного - тем больше степень моего незнания.
Лёгкость принятия решений и громкость слов (или число нулей ожидаемой прибыли) свойство окружностей сверхмалого диаметра, стремящихся к точке - к точке зрения.
Larik
Цитата (T1grOK @ 13.06.2013 - 16:08)
Скорей всего скорость упирается в трансляцию, интерпретацию, компиляцию и в способ работы с памятью.
Если действительно нужно что то вычислить очень сложное, с множеством иттераций, то лучше написать на более быстром ЯП, а через PHP извлекать результаты.

Там просто идет моделирование боя,т.е для каждого юнита подбирается противник если его нету, а если есть ,то он к нему сдвигается,если уже близко ,то наносится урон, если здоровье опускается до 0,юнит удаляется из базы,и все это делается до тех пор пока в таблице не останится ни одного юнита ,принадлежащего любому из 2ух игроков.

_____________
Чем больше круг знаний - тем больше длина окружности соприкосновения с областью неизвестного - тем больше степень моего незнания.
Лёгкость принятия решений и громкость слов (или число нулей ожидаемой прибыли) свойство окружностей сверхмалого диаметра, стремящихся к точке - к точке зрения.
sergeiss
Цитата (Larik @ 13.06.2013 - 23:01)
Что за команда?
Цитата (Larik @ 13.06.2013 - 23:05)
Там просто идет моделирование боя...

За 30 секунд, я думаю, можно спланировать целый бой типа битвы на Курской дуге smile.gif Если ты много раз вызываешь запросы к БД, то это плохо - но именно это можно предположить на основе твоих слов. Лучше либо в ПХП всё сделать, а потом дать таблице команду на модификацию или удаление определенных строк, либо всю эту логику перенести в БД. Не знаю, как в Мускуле, а в Постгре можно очень много сделать на основе функций внутри самой БД. И это будет намного быстрее, чем ПХП-скрипт постоянно общается с БД.
Не зная точно логику твоего скрипта, более точно ничего не скажешь.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Larik
Цитата (sergeiss @ 13.06.2013 - 23:28)
Цитата (Larik @ 13.06.2013 - 23:01)
Что за команда?
Цитата (Larik @ 13.06.2013 - 23:05)
Там просто идет моделирование боя...

За 30 секунд, я думаю, можно спланировать целый бой типа битвы на Курской дуге smile.gif Если ты много раз вызываешь запросы к БД, то это плохо - но именно это можно предположить на основе твоих слов. Лучше либо в ПХП всё сделать, а потом дать таблице команду на модификацию или удаление определенных строк, либо всю эту логику перенести в БД. Не знаю, как в Мускуле, а в Постгре можно очень много сделать на основе функций внутри самой БД. И это будет намного быстрее, чем ПХП-скрипт постоянно общается с БД.
Не зная точно логику твоего скрипта, более точно ничего не скажешь.

Спасибо,учту.Я именно через постоянные запросы и делал)

_____________
Чем больше круг знаний - тем больше длина окружности соприкосновения с областью неизвестного - тем больше степень моего незнания.
Лёгкость принятия решений и громкость слов (или число нулей ожидаемой прибыли) свойство окружностей сверхмалого диаметра, стремящихся к точке - к точке зрения.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.