21

Re: 40 порад по оптимізації вашого PHP коду

sewen написав:

Взагалі - такими  оптимізаціями  займалися   в  часи  MS-DOS.  Зараз  залізо  коштує менше  ніж праця   програміста - дешевше  добавити  проца  або  памяті  та  не  займатися  подібними збоченнями

за таких як ви програмістів пишуть плеєр якому потрібно 1 гіг оператівки і два ядра проц і це мінімальниі характеристики що б послухати мр3

Так завжди буде: любителі асемблера будуть труситись над кожним тактом, а бидлокодери — бидлокодити. Але це крайнощі.

22 Востаннє редагувалося VTrim (26.09.2014 10:00:15)

Re: 40 порад по оптимізації вашого PHP коду

Використовуйте NULL замість 0, is_null(), empty()
Наприклад

if ($count===null)
{
//код
}

Використовуйте існуючі функції замість створення велосипедів.

echo htmlspecialchars($text);

Швидше ніж

$text=str_replace('"','',$text);
$text=str_replace('<','<',$text);
$text=str_replace('>'','>',$text);
echo $text;

SizeOf() працює швидше ніж count()
При запитах в бд SELECT, UPDATE, DELETE вказуйте LIMIT (ліміт запитів) наприклад LIMIT 1
При виборці даних з бд вказуйте потрібні вам колонки замість * (всіх колонок),крім деяких випадків
Не використовуйте непотрібні в рядку функції
Наприклад

$num = abs(intval($_GET['num']));

Швидше ніж

$num = intval(htmlspecialchars(mysql_real_escape_string(trim($_GET['num']))));

Бо в першому варіанті ми вже відфільтрували змінну на цілочисленість
Використовуйте дані типу boolean

if($var == true)
{
//код
}
require

швидше, ніж

include
If, else, elseif

швидше, ніж

switch

p/s може буду ще добавляти

23

Re: 40 порад по оптимізації вашого PHP коду

sewen написав:

Взагалі - такими  оптимізаціями  займалися   в  часи  MS-DOS.  Зараз  залізо  коштує менше  ніж праця   програміста - дешевше  добавити  проца  або  памяті  та  не  займатися  подібними збоченнями

за таких як ви програмістів пишуть плеєр якому потрібно 1 гіг оператівки і два ядра проц і це мінімальниі характеристики що б послухати мр3

Особисто  мені   важливо  як  плеєр  грає  музику  а  не  скільки  він   памяті  їсть.
   Зверніть  увагу  на  сучасні  дистрибутиви від  відомих  фірм-виробників прграмного забезпечення  - розміри  уже  за гігабайти перевалюють.     Це  не  означає  що там  бидлокод - просто   болванка  DVD  коштує набагато  дешевше  роботи  програміста. 
   
   крім  того оптимізація  часто робить  код  менш  зрозумілим
   наприклад

SizeOf() працює швидше ніж count()

   не  має  значення  що  результат  той  самий (до  речі  в   мануалі "sizeof — Alias of count()"  тобто не  швидше   а  просто  аліас)
   має  значення  - ми  збираємось  отримати  розмір  чи  кількість  елементів - суттєва  різниця  для того  хто  хоче розібратися   в  чужому   коді   і   зрозуміти  що  він  робить цей  код.   Ті хто  програмує не тільки  в  PHP  на  sizeof  подумають  що завгодно  тільки не  кількість  елементів,  особливо хто   с  досвідом  на  С, С++.

24

Re: 40 порад по оптимізації вашого PHP коду

caballero,і тим не менше,sizeof() працює швидше count() (перевірив)

25

Re: 40 порад по оптимізації вашого PHP коду

можливо.   в  будь якому   випадку  це  "економія  на  сірниках"
  волію  мати зрозумілий и читабельний   код  ніж  зекономлені  пару  мікросекунд.

26

Re: 40 порад по оптимізації вашого PHP коду

caballero написав:

можливо.   в  будь якому   випадку  це  "економія  на  сірниках"
  волію  мати зрозумілий и читабельний   код  ніж  зекономлені  пару  мікросекунд.

Це економія на сірниках доти,доки не піде велике навантаження,а тести показують,що чим воно більше,тим і більший відрив між оптимізованим та неоптимізованим варіантами.

27

Re: 40 порад по оптимізації вашого PHP коду

у   кого  велике  навантаження   у  того нема   проблем  с  коштами  для  потужного  заліза   або  оплати  програмістів  які  напишут  программу  не  на  PHP   а  наприклад на Java  яку  зазвичай   використовують  для  ентерпрайз рішень.
     крім  того  ті  хлопці,   котрим  треба  читати  ці   40  правил,  ще  дуже  не  скоро  писатимуть  проекти  з  великими  навантаженнями.     :)

28

Re: 40 порад по оптимізації вашого PHP коду

Натякаєш на те,що PHP "крива" мова?)

29

Re: 40 порад по оптимізації вашого PHP коду

Оптимізація потрібна завжди, навіть в сучасну епоху дешевого заліза.
Ніколи ж не знаєш, яка думка прийде в процесі цієї самої оптимізації. Раптом це буде якесь геніально-просте рішення...

30

Re: 40 порад по оптимізації вашого PHP коду

VTrim написав:

Натякаєш на те,що PHP "крива" мова?)

Нормальна  мова.  Але  для   кожного  рішення має бути  свій  інструмент.

31

Re: 40 порад по оптимізації вашого PHP коду

Особисто  мені   важливо  як  плеєр  грає  музику  а  не  скільки  він   памяті  їсть.
   Зверніть  увагу  на  сучасні  дистрибутиви від  відомих  фірм-виробників прграмного забезпечення  - розміри  уже  за гігабайти перевалюють.     Це  не  означає  що там  бидлокод - просто   болванка  DVD  коштує набагато  дешевше  роботи  програміста.

хіба не правда, грає, а скільки для цього грає треба всім по екватору, а вкогось ігровий потужний комп, а вкогось нетбук.
Все потрібно підбирати по ТТХ, і Гб дику, не означає що все і одразу буде в памяті. Довга розмова, але суть PHP і оптимізація, ми відходимо від теми, пропоную на цій ноті розійтись, не подобається плеер, став інший, ніби він один на весь світ

32 Востаннє редагувалося caballero (26.09.2014 12:57:47)

Re: 40 порад по оптимізації вашого PHP коду

yarko написав:

Оптимізація потрібна завжди, навіть в сучасну епоху дешевого заліза.
Ніколи ж не знаєш, яка думка прийде в процесі цієї самої оптимізації. Раптом це буде якесь геніально-просте рішення...

   якщо  вартість  оптимізацііі не  перевищує  вартості  заліза. 
   Крім  того,   як   казав  Дональд Кнут - Premature optimization is the root of all evil .
   Причина  проста - ви  потратите  багато  часу  щоби  оптимізувати  якись  шмат  коду   а   в  реальності   виявится     що  тут  ніякої  проблемми  і  немає  а   є  зовсім  в  іншому   місці.

  В  більшості   випадків  достатньо  просто  писати  грамотний  код.  А  потім  займатися  оптимізацією  саме  там де   виявиться   проблема в процессі  експлуатації  або  навантажвального  тестування

33

Re: 40 порад по оптимізації вашого PHP коду

оптимізація це не тільки заміна функцій які швидко працюють
спочтаку пишеться код, аби працював, а вже потім його зменшуєш

Подякували: yarko1

34

Re: 40 порад по оптимізації вашого PHP коду

Що значить на вищому рівні?

постараюсь пояснити що значить оптимізація на вищому рівні. Коли зростає навантаження і ви бачите що у вас є проблеми зі швидкістю що ви робите? Ідете і заміняєте всі !empty на !==null чи strlen() на $foo{4} ?
Особисто я запускаю профайлер дивлюсь які методи найдовше виконуються (або яких викликів функцій дуже багато) і відносно того уже вношу зміни в логіку роботи додатку. Як на мене саме це є вищим рівнем оптимізації аніж дивитись що швидше require чи include

Використовуйте NULL замість 0, is_null(), empty()

NULL і empty це як на мене різні речі. Не можна взяти і всі empty замінити на === NULL я надіюсь ви це розумієте?

Наскільки зрозумів     If, else, elseif швидше ніж switch я не знаю хто вам таке сказав але все варто перевіряти. І не на одній машині і не в одному середовищі. + тест це не просто прогнати 5 раз тестовий скрипт і видати результати.

Це економія на сірниках доти,доки не піде велике навантаження,а тести показують,що чим воно більше,тим і більший відрив між оптимізованим та неоптимізованим варіантами.

Давайте прикинемо наступний результат. Ви пишете код який супер пупер оптимізований. Скоріш за все у вас все рівно будуть проблеми з продуктивністю. Недостатньо писати if і не використовувати switch для того що б у вас не було проблем. Вірно?
Отже ідемо далі. У вас є код написаний за вашою логікою і стилем. Проект розростається навантаження зростає, треба брати нових програмістів. Ви взяли нового чувака і він вам каже: а чого ви не юзаєте switch ви вбиваєте 15 хв для того що б пояснити що і в чому справа.
Дальше чувак кодить по своїх правилах: для прикладу використовує count тут у вас починаються дебати і ще + 15 хв на пояснення і + 10 хв що б виправити попередні правки користувача.

Дальше час іде на написання коду вашим програмістом. Так як він же має перевчатись. Ви продовжуєте калькулювати час який витрачається. А якщо врахувати що оперативка коштує 100 баксів  а час який ви потратили на спілкування тільки з одним  програмістом * на його годинну ставку ось тут і буде ваш реальний виграш ;)

До речі ще одна штука. Це дуже класно що ви заділи таку тему. Дійсно варто старатись писати дійсно хороший код.
Але.
Програмісти як на мене шукають золоту середину між читабельністю, часом на підтримку, часом над запровадженням нового функціоналу, часом над введенням нових працівників у курс справи і швидкістю роботи.

І памятайте те що include швидшкий за require це одне. Але це не означає що це одне і те саме. Це різні фішки в php. Так само як і if & switch

До речі. Рекомендую прочитати книжку Стив Макконнелл "Совершенный код" ви побачите чому інколи варто використовувати switch змість if
+ погляньте на код сучасних фреймворків.

Подякували: mike1

35 Востаннє редагувалося VTrim (29.09.2014 15:29:48)

Re: 40 порад по оптимізації вашого PHP коду

Я нікого не заставляю робити так,оптимізувати так. Робіть як хочете,пишіть як хочете.

36

Re: 40 порад по оптимізації вашого PHP коду

і оптимізація запитів до бд теж фігня і кешування і все остальне -фігня!1,головне щоб проект на фреймворку був!11

37

Re: 40 порад по оптимізації вашого PHP коду

Треба оптимізовувати все по самі помідори оскільки тут замішані національні інтереси. Хтось десь написав зайвий цикл, передав зайві непотрібні дані і в масштабах країни такі програмки витратили даремно Гігават потужності.

38

Re: 40 порад по оптимізації вашого PHP коду

:D

39

Re: 40 порад по оптимізації вашого PHP коду

Invader написав:

Треба оптимізовувати все по самі помідори оскільки тут замішані національні інтереси. Хтось десь написав зайвий цикл, передав зайві непотрібні дані і в масштабах країни такі програмки витратили даремно Гігават потужності.

А ще можна писати диверсійний код, який глючить і тупить, і впарювати "потенційному противнику".

40

Re: 40 порад по оптимізації вашого PHP коду

quez написав:
Invader написав:

Треба оптимізовувати все по самі помідори оскільки тут замішані національні інтереси. Хтось десь написав зайвий цикл, передав зайві непотрібні дані і в масштабах країни такі програмки витратили даремно Гігават потужності.

А ще можна писати диверсійний код, який глючить і тупить, і впарювати "потенційному противнику".

Або дірявий,щоб потім хакнути.