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
rzuczek1