Долго искал статью по производительности php,наконец нашел и там нашел очень важный момент:
Проигрыш в быстродействии PHP заметен в случае больших и сложных циклов, при обработке большого количества строк и т. д. Однако, заметьте, это единственный недостаток PHP, который будет все меньше и меньше проявляться по мере выхода более мощных процессоров, чтобы, в конце концов, вообще сойти на нет.
Я действительно заметил такой недостаток,у меня сложный цикл и он либо выполняется в течение 30 секунд либо вообще пишет что время истекло и выполняется только со второго прохода.
Но вот процессор был загружен в этот момент всего на 10 процентов?объясните что к чему,может настроить где-нибудь можно,чтобы php быстрее работал, или я вообще не так понял что то?
_____________
Чем больше круг знаний - тем больше длина окружности соприкосновения с областью неизвестного - тем больше степень моего незнания.
Лёгкость принятия решений и громкость слов (или число нулей ожидаемой прибыли) свойство окружностей сверхмалого диаметра, стремящихся к точке - к точке зрения.
T1grOK
13.06.2013 - 16:08
Скорей всего скорость упирается в трансляцию, интерпретацию, компиляцию и в способ работы с памятью.
Если действительно нужно что то вычислить очень сложное, с множеством иттераций, то лучше написать на более быстром ЯП, а через PHP извлекать результаты.
_____________
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
S.Chushkin
13.06.2013 - 18:14
Цитата (Larik @ 13.06.2013 - 15:38) |
Но вот процессор был загружен в этот момент всего на 10 процентов... |
PHP однопотоковый, поэтому для Core i7 (4 ядра, 8 потоков), например, загрузка будет 10-12 процентов максимум.
Кроме того, избегайте вызовов процедур/методов в больший циклах. Ибо только на время вызова процедуры тратится около 1/миллионной секунды (на 3-х Гц ядре). Если цикл "тормозит", то замените процедуры на код PHP - можно ускорить в разы и даже в десятки раз, в зависимости от количества процедур в цикле.
п.с. Это если без всяких ухищрений, типа компиляторов и т.п.
_____________
Рекламка / ad.pesow.com Хрень / mr-1.ru
sergeiss
13.06.2013 - 22:01
Цитата (Larik @ 13.06.2013 - 15:38) |
Я действительно заметил такой недостаток,у меня сложный цикл и он либо выполняется в течение 30 секунд либо вообще пишет что время истекло и выполняется только со второго прохода. |
Ну, это обходится легко, одной командой
ПХП скрипт может работать очень долго, намного дольше 30 секунд.
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
Цитата (sergeiss @ 13.06.2013 - 22:01) |
Цитата (Larik @ 13.06.2013 - 15:38) | Я действительно заметил такой недостаток,у меня сложный цикл и он либо выполняется в течение 30 секунд либо вообще пишет что время истекло и выполняется только со второго прохода. |
Ну, это обходится легко, одной командой ПХП скрипт может работать очень долго, намного дольше 30 секунд. |
Что за команда?
_____________
Чем больше круг знаний - тем больше длина окружности соприкосновения с областью неизвестного - тем больше степень моего незнания.
Лёгкость принятия решений и громкость слов (или число нулей ожидаемой прибыли) свойство окружностей сверхмалого диаметра, стремящихся к точке - к точке зрения.
Цитата (T1grOK @ 13.06.2013 - 16:08) |
Скорей всего скорость упирается в трансляцию, интерпретацию, компиляцию и в способ работы с памятью. Если действительно нужно что то вычислить очень сложное, с множеством иттераций, то лучше написать на более быстром ЯП, а через PHP извлекать результаты. |
Там просто идет моделирование боя,т.е для каждого юнита подбирается противник если его нету, а если есть ,то он к нему сдвигается,если уже близко ,то наносится урон, если здоровье опускается до 0,юнит удаляется из базы,и все это делается до тех пор пока в таблице не останится ни одного юнита ,принадлежащего любому из 2ух игроков.
_____________
Чем больше круг знаний - тем больше длина окружности соприкосновения с областью неизвестного - тем больше степень моего незнания.
Лёгкость принятия решений и громкость слов (или число нулей ожидаемой прибыли) свойство окружностей сверхмалого диаметра, стремящихся к точке - к точке зрения.
sergeiss
13.06.2013 - 23:28
Цитата (Larik @ 13.06.2013 - 23:01) |
Что за команда? |
Цитата (Larik @ 13.06.2013 - 23:05) |
Там просто идет моделирование боя... |
За 30 секунд, я думаю, можно спланировать целый бой типа битвы на Курской дуге
Если ты много раз вызываешь запросы к БД, то это плохо - но именно это можно предположить на основе твоих слов. Лучше либо в ПХП всё сделать, а потом дать таблице команду на модификацию или удаление определенных строк, либо всю эту логику перенести в БД. Не знаю, как в Мускуле, а в Постгре можно очень много сделать на основе функций внутри самой БД. И это будет намного быстрее, чем ПХП-скрипт постоянно общается с БД.
Не зная точно логику твоего скрипта, более точно ничего не скажешь.
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
Цитата (sergeiss @ 13.06.2013 - 23:28) |
Цитата (Larik @ 13.06.2013 - 23:01) | Что за команда? |
Цитата (Larik @ 13.06.2013 - 23:05) | Там просто идет моделирование боя... |
За 30 секунд, я думаю, можно спланировать целый бой типа битвы на Курской дуге Если ты много раз вызываешь запросы к БД, то это плохо - но именно это можно предположить на основе твоих слов. Лучше либо в ПХП всё сделать, а потом дать таблице команду на модификацию или удаление определенных строк, либо всю эту логику перенести в БД. Не знаю, как в Мускуле, а в Постгре можно очень много сделать на основе функций внутри самой БД. И это будет намного быстрее, чем ПХП-скрипт постоянно общается с БД. Не зная точно логику твоего скрипта, более точно ничего не скажешь. |
Спасибо,учту.Я именно через постоянные запросы и делал)
_____________
Чем больше круг знаний - тем больше длина окружности соприкосновения с областью неизвестного - тем больше степень моего незнания.
Лёгкость принятия решений и громкость слов (или число нулей ожидаемой прибыли) свойство окружностей сверхмалого диаметра, стремящихся к точке - к точке зрения.
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.