Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   Оптимизация программ на PHP (http://forum.oszone.net/showthread.php?t=31194)

Vlad Drakula 10-05-2004 18:54 213953

предлагаю одсудить методы оптимизации прогарамм ны PHP.

так например писать:
Код:

$a = "a $i a";
не надо!
надо:
Код:

$a = "a ".$i." a";
рвзультат тот же, но вот скорость в 1,5 раза выше!!!

еще один пример:
Код:

$a = $a."a";
надо так:
Код:

$a .= "a";
скорость возрастает в 3 раза!!!

может кто еще какие приемы знает?


Добавлено:

PS
извеняюсь за громатику в названии :(

vadimiron 10-05-2004 20:37 213954

Оптимизайия программ на PHP
 
Ну например можно ещё так написать:
Код:

if ($a<6) echo $a;
Вместо
Код:

if ($a<6)
{
    echo $a;
}

При переводе некоторое время тратится на то, чтобы убрать все ненужные пробелы и переносы

Vlad Drakula 10-05-2004 21:37 213955

Оптимизайия программ на PHP
 
vadimiron
ты не прав второй вариант быстрее первого примерно на 1-3 процента!
(сам тестил!)

Guest 11-05-2004 01:58 213956

Оптимизайия программ на PHP
 
Vlad Drakula

Нам на информатике другое рассказывали, правда там было относительно С++, но думаю разницы нет

А можно вопрос как ты тестишь???

------------------------
vadimiron

[s]Исправлено: Prisoner, 2:43 11-05-2004[/s]

Prisoner 11-05-2004 03:12 213957

Вероятно каким-либо profiler'ом...
К слову о функциях: как-то давно читал статью о том, что sizeof() и count(). Так последний на больших массивах медленнее первого на ~10-15%.
(Так... не люблю быть голословным, вот эта статья . Тут много еще вкусного).

Vlad, я тебя сильно уважаю, ты не обижайся, но твои посты я без смеха и слез читать не могу :). Топик я еще могу поправить, их мало ;), но будь другом, проверяй перед сабмитом текст, а? :)

vadimiron 11-05-2004 14:02 213958

Вот ещё пару статей:

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 213959

Prisoner извеняюсь, буду стараться!

vadimiron
да действительно я ошибся, ты прав!


Добавлено:

vadimiron
спасибо за ссылки, я сейчас все проверю и напишу результаты!

Ginger 11-05-2004 21:38 213960

Vlad Drakula
так чем ты тестишь скорость?

Vlad Drakula 11-05-2004 22:58 213961

Ginger
тестирую самим пхп, т.е. запускаю микротаймер.

а в реальности тестирую с помошью WebStress

но том уже совсем други  скорости и оптимизации...
в среднем производительность у меня 300000-400000 страниц в час!
(на таких обемах очень много инрает даже перерисовка програмь и винамп, в разы!!!)

время генерации около 80-90мс.

когда я создавал эту тему то производительнось была на уровне 220000 тсраниц.

Pawel gor 12-05-2004 16:31 213962

В самам начале было предложено писать
$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 213963

Pawel gor
я так и делал!

vadimiron 12-05-2004 23:20 213964

мне иногда кажется что большая серия из if-ов работает быстрей чем одна строка с регулярным выражением

Vlad Drakula 13-05-2004 00:07 213965

vadimiron
пример привести можешь?
а то я плохо понял что именно ты имел в виду!

advocat 14-05-2004 14:06 213966

а как насчет скорости подобного
Код:

echo "test ".$var." ... OK";
и
Код:

echo "test {$var} ... OK";
что быстрее ? :)

2 Prisoner статья была написана php.spb.ru ...

Vlad Drakula 14-05-2004 20:11 213967

advocat
первый вариант быстрее и на много!

Prisoner 15-05-2004 02:57 213968

На основе приведенных выше статей лучше даже так будет:
Код:

echo 'test '.$var.' ... OK';
advocat? прости, и что с того? Это же Сеть...


[s]Исправлено: Prisoner, 2:59 15-05-2004[/s]


Время: 10:26.

Время: 10:26.
© OSzone.net 2001-