Показать полную графическую версию : Оптимизация программ на PHP
Vlad Drakula
10-05-2004, 18:54
предлагаю одсудить методы оптимизации прогарамм ны PHP.
так например писать:
$a = "a $i a";
не надо!
надо:
$a = "a ".$i." a";
рвзультат тот же, но вот скорость в 1,5 раза выше!!!
еще один пример:
$a = $a."a";
надо так:
$a .= "a";
скорость возрастает в 3 раза!!!
может кто еще какие приемы знает?
Добавлено:
PS
извеняюсь за громатику в названии :(
vadimiron
10-05-2004, 20:37
Ну например можно ещё так написать:
if ($a<6) echo $a;
Вместо
if ($a<6)
{
echo $a;
}
При переводе некоторое время тратится на то, чтобы убрать все ненужные пробелы и переносы
Vlad Drakula
10-05-2004, 21:37
vadimiron
ты не прав второй вариант быстрее первого примерно на 1-3 процента!
(сам тестил!)
Vlad Drakula
Нам на информатике другое рассказывали, правда там было относительно С++, но думаю разницы нет
А можно вопрос как ты тестишь???
------------------------
vadimiron
Исправлено: Prisoner, 2:43 11-05-2004
Prisoner
11-05-2004, 03:12
Вероятно каким-либо profiler'ом...
К слову о функциях: как-то давно читал статью о том, что sizeof() и count(). Так последний на больших массивах медленнее первого на ~10-15%.
(Так... не люблю быть голословным, вот эта статья (http://www.getinfo.ru/article155_1.html) . Тут много еще вкусного).
Vlad, я тебя сильно уважаю, ты не обижайся, но твои посты я без смеха и слез читать не могу :). Топик я еще могу поправить, их мало ;), но будь другом, проверяй перед сабмитом текст, а? :)
vadimiron
11-05-2004, 14:02
Вот ещё пару статей:
http://argon.com.ru/internet/webmastering/phpoptim
http://www.listsoft.ru/articles/349/
Есть также разные утилиты для оптимизации, например:
http://apc.communityconnect.com/
Это так называемый APC-Alternative PHP Cache
Также стоит обратить внимание на базу данных и уметь правильно строить запросы, это тоже повысит скорость приложений, для подсчёта времени, которое тратится на запросы, можно почитать в следущей ссылке:
http://www.codenet.ru/webmast/php/sqltime.php
И ещё одно замечание от меня (и для меня :)): в больших проектах надо учится управлять распределением памяти, это тоже может повысить скорость
Vlad Drakula
11-05-2004, 20:14
Prisoner извеняюсь, буду стараться!
vadimiron
да действительно я ошибся, ты прав!
Добавлено:
vadimiron
спасибо за ссылки, я сейчас все проверю и напишу результаты!
Vlad Drakula
так чем ты тестишь скорость?
Vlad Drakula
11-05-2004, 22:58
Ginger
тестирую самим пхп, т.е. запускаю микротаймер.
а в реальности тестирую с помошью WebStress
но том уже совсем други скорости и оптимизации...
в среднем производительность у меня 300000-400000 страниц в час!
(на таких обемах очень много инрает даже перерисовка програмь и винамп, в разы!!!)
время генерации около 80-90мс.
когда я создавал эту тему то производительнось была на уровне 220000 тсраниц.
Pawel gor
12-05-2004, 16:31
В самам начале было предложено писать
$a .= "a"; вместо $a=$a."a";
ну тогда аналогично и с
$x+=5; $y*=3;
ну а про $i++; я думаю все знают! (кстати жто тоже на информатике расказывали!)
А на счет тестирования: я так понял Вы программами тестите? А если просто какую либо операцию просто в цикле выполнить много раз и засечь время выполнения, (функция помоему есть, которая до мили секунд время мереет), что-то типа:
......
for($i=1; $i<10000; $i++);{
$a = "a ".$i." a";}
......
и сравнить с $a = "a $i a"; Почему бы так не сделать?
Vlad Drakula
12-05-2004, 21:32
Pawel gor
я так и делал!
vadimiron
12-05-2004, 23:20
мне иногда кажется что большая серия из if-ов работает быстрей чем одна строка с регулярным выражением
Vlad Drakula
13-05-2004, 00:07
vadimiron
пример привести можешь?
а то я плохо понял что именно ты имел в виду!
а как насчет скорости подобного
echo "test ".$var." ... OK";
и
echo "test {$var} ... OK";
что быстрее ? :)
2 Prisoner статья была написана php.spb.ru ...
Vlad Drakula
14-05-2004, 20:11
advocat
первый вариант быстрее и на много!
Prisoner
15-05-2004, 02:57
На основе приведенных выше статей лучше даже так будет:
echo 'test '.$var.' ... OK';
advocat? прости, и что с того? Это же Сеть...
Исправлено: Prisoner, 2:59 15-05-2004
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.