php - optymalizacja kodu.txt

(5 KB) Pobierz
Date: Sat, 8 Dec 2001 03:53:24 +0100
From: Wojciech Jukowski <wojtek@jukowski.com>
Subject: Re: [PHP-FAQ] propozycja odpowiedzi

witam,

On Sat, Dec 08, 2001 at 01:42:16AM +0100, Metempsychoza wrote:
> 4.19 Jak zoptymalizowa� kod napisany w PHP?

piekne. zachowac ja jest. moje uwagi uzglednic albo olac. i bez nich ok.

> Przede wszystkim wy��czyc komputer, prze�pij si� a nast�pnego dnia sp�jrz na swoje dzie�o
> trze�wym okiem. Krok po kroku przeanalizuj wszystkie wykonywane operacje i wczuj si� w
> rol� parsera kt�ry jest (podobnie jak cz�owiek) bardzo leniwym tworem i chcia�by zrobi�
> jak najwi�cej jak najmniejszym kosztem.
> 
> - podmiana znak�w: je�li wiemy co podmieniamy i gdzie nie u�ywajmy funkcji operuj�cych
>   na wyra�eniach regularnych
>   
> - nie powtarzaj si�! Je�li wykonujesz jakie� dzia�ania a ich wynik b�dzie potrzebny
>   kilkukrotnie zapisz go w zmiennej i p�niej wykorzystaj.
    .. Dotyczy to rowniez wykonywanych przy kazdym przebiegu petli. np:
    for($i=0; $i < count($i); $i++) mozna zastapic wywoalniem foreach badz wczesniej
    zapamietac ile bedziemy razy musieli wykonac petle.

  - uwazaj by nie tworzyc zbyt duzo zmiennych tymczasowych (np aktualny numer indeksu
    przy przejsciu petli). stworzenie wlasnej notacji badz przyjecie jakiejs okreslonej
    pozwoli tez nie zgubic sie w gaszczu zmiennych.

> - ustaw error_reporting na E_ALL w php.ini. Znawcy problemu twierdz�, �e dopiero w�wczas
>   rozpoczyna si� prawdziwa przygoda z php :-)

;>> dzie-ku-je-my

> - ciapki pojedy�cze vs. podw�jne: gdzie tylko mo�esz stosuj ciapki pojedy�cze, gdy� string
>   nimi obj�ty jest uwolniony od dalszego zainteresowania parsera, kt�ry milcz�co zak�ada
>   �e mo�e zostawi� go w spokoju, natomiast gdy ciapki s� podw�jne parser jest bardziej
>   dociekliwy i analizuje zawarto�� stringa pr�buj�c znale�� w nim zmienne lub znaki
>   specjalne.
> 
> - nie mieszaj og�rk�w z d�emem, czyli html-a z php-em: je�li nie zdecydowa�e� si� na
>   korzystanie z szablon�w, czyli odseparowanie logiki od warstwy prezentacyjnej staraj
>   si� aby html by� poza zasi�giem znacznik�w <?php ?>
> 
> - nie b�j si� czytelnego formatowania kodu. Fakt �e dla maszyny to wszystko jedno (czasem
>   nawet prze�knie brak nawiasu zamykaj�cego blok warunkowy), lecz pamietaj �e im
>   czytelniej tym �atwiej wypatrze� b��dy i niedoci�gni�cia.

     .. Czesto czytelnosc wydatnie poprawia umiejetnosc intedentacji tekstu (wcienania),
     niektore edytory automatycznie ustawiaja kursor o kilka znakow dalej w nowej linii.

  - pamietaj, iz jesli masz do wyboru dwa sposoby dobra metoda sprawdzenia, ktory bedzie
    dzialal szybciej mozesz to po prostu zmierzyc. patrz tez FAQ 6.14.

  - sprawdz, ktore czesci twojego skryptu sa najwolniejsze i pomysl jak mozna by je
    przyspieszyc. jesli np operujesz na wielu plikach tekstowych to moze warto uzyc
    bazy danych. jesli twoje zapytania wykonuja sie za dlugo to sprobuj znalezc sposob
    by je ulepszyc (np zamiast SELECT kod FROM adresy WHERE miasto='Wroclaw' AND
    ulica='Szczytnicka' lepiej napisac SELECT kod FROM adresy WHERE ulica='Szczytnicka'
    AND miasto='Wroclaw' bo mniej mamy ulic 'Szczytnicka' w Polsce niz ulic we Wroclawiu),
    mozesz tez uzyc polecenia EXPLAIN w MySQL'u by zobaczyc jak dziala twoje zapytanie.

  - nie probuj zabijac muchy z armaty - czesc danych istotnie musi byc generowana
    automatycznie dla kazdego wchodzacego na strone. niektore jednak informacje rzadko
    sie zmieniaja - np kto danego dnia ma imieniny, czy calodzienna prognoza pogody.
    mozesz wiec te inforamcje generowac tylko raz na dzien, badz co najwyzej cyklicznie
    co kilka godzin, a nie z kazdym wejsciem goscia na twoja strone. szczegolnie
    wyczulamy na nadmiarowe korzystanie z nie najszybszych bibliotek (np GD).
    w tym momencie tracac troche miejsca na naszym dysku twardym zyskujmy sporo mocy
    procesora.

  - software: jesli musisz znacznie przyspieszyc wykonywanie skryptow a nie masz na to
    czasu mozesz uzyc programow temu przeznaczonych. Zestawienie kilku popularnych aplikacji 
    znajdziesz na stronie http://php.weblogs.com/php_debugger_cache

> Je�li powy�sze wskaz�wki sprawi�y �e tw�j skrypt jest szybki jak burza to wspaniale, a
> je�li nie... C�, prze�pij si� jeszcze jedn� noc i zacznij wszystko od pocz�tku.



.kawy.
-- 
wojciech.jukowski .. make web your home ..





Date: Sat, 8 Dec 2001 12:39:36 +0100
From: Metempsychoza <metempsychoza@wp.pl>
Subject: Re[2]: [PHP-FAQ] propozycja odpowiedzi

[  fragmenty  ]

>   - sprawdz, ktore czesci twojego skryptu sa najwolniejsze i pomysl jak mozna by je
>     przyspieszyc. jesli np operujesz na wielu plikach tekstowych to moze warto uzyc
>     bazy danych.

 ...nie daj si� skusi� na $array = file(). To bardzo wygodne, lecz
 tylko je�li wiemy co wczytujemy do tablicy i ile tego jest.
 Domy�lnie jeden skrypt php ma prawo skonsumowa� do 8M pami�ci, wi�c
 nawet prosta analiza log�w mo�e sko�czy� si� tragicznie. Znacznie
 lepszym rozwi�zaniem jest zastosowanie p�tli while() w po��czniu z
 funkcj� fgets()



--
a wiec to tak... co noc wypalasz oczy przed monitorem piszac cos
co bedzie zguba dla naszej branzy, portalem, forum i mlynkiem do
> .kawy.
jednoczesnie? dzielem idealnym ktore poruszy swiat...



-- 
metempsychoza(at)wp.pl


Zgłoś jeśli naruszono regulamin