PHP optimizacija
Naleteo sam na interesantan članak sa nekim primerima optimizacije PHP koda, da li je neko od vas merio nešto slično. Neki rezultati su očekivani (recimo str_replace vs reg exp za stringove) ali me (blago) iznenadjuju neki drugi.
Članak je ovde: http://blogs.hackerscenter.com/dcrab/?p=9 |
Za include sam znao da usporava kod, al ipak, prednosti su mnogo vece od mana (ko zeli da odrzava index.php koji ima 5000 linija koda)..
Takodje jedna od cestih gresaka kod pocetnika: PHP kôd:
PHP kôd:
Ipak, to je prica za sebe. Za reference znam da je nesto promenjeno u PHP5, al nisam siguran sta.. Verujem da ima veze sa objektno orjentisanim programiranjem, tako da savet naveden u clanku i dalje stoji... Kao i sigurnost, optimizacija oduzima najmanje vremena ako se neke stvari odrade kako treba na samom pocetku. Naravno, op code cache-eri kao sto je PHPAccelerator i i sl mnogo pobojsavaju performanse, i prava je glupost ne koristiti ih kod vecih projekata. Dobar link iz online knjige pomocu koje sam se ja upoznao sa php-om: http://hudzilla.org/phpbook/read.php/18_0_0 Vecina vas sigurno zna vecinu ovih saveta (lakse sa funkcijama, keshiranje..), al nije lose pomenuti... |
Iskreno, ocekivao sam vise od jednog clanka o optimizaciji. Prvo, razocaran sam samom benchmark metodom (microtime vs. xdebug na primer). Drugo, autor teksta nije ni zagrebao temu optimizacije, a primeri su uglavnom lose izabrani.
Posto je ovo pro forum a moja malenkost moderator PHP foruma, evo sta je autor u gornjem clanku propustio. 1) "Premature optimization is the root of all evil." (Donald E. Knuth) 2) "When developing applications, the first stage should be to make design your top priority; we should sacrifice performance in favor of a well designed application architecture, and allow our code to be flexible and maintainable. In general, assuming you haven’t made any critical mistakes in your code, performance is really a hardware issue (i.e. you have the option to throw memory,faster processors etc. at the problem);" (Harry Fuecks) 3) "Fast programmers cost more than fast microprocessors!" (Harry Fuecks) A sada evo i nekih tehnika: - Most Probably First: Kod koriscenja if-else uslova, u prvi if uvek treba stavljati uslov koji će se verovatnije izvršiti. Na primer ako imamo $foo_boolean za koji znamo da će prilikom izvršavanja scripta skoro sigurno biti true onda treba : PHP kôd:
Kao što Bojan reče, unutar for i while petlji ne stavljati count već van njih. Dakle ne: PHP kôd:
PHP kôd:
Već smo videli koliko "košta" jedan include praznog fajla. Zamislite tek include neke klase (ili više njih). U slučaju da nam to nije neophodno možemo koristiti tzv "Lazy Inclusion": PHP kôd:
- Use Single Quotes Negde sam ovo pročitao, a negde i da je to jedna od urbanih legendi. Elem, po nekima, korišćenje jednostrukih navodnika je brže (što donekle ima smisla jer onda engine ne traži escape karaktere). - Encode Script Encodovan script (http://www.zend.com/products/zend_guard) radi oko 100% brže. |
Citat:
|
Citat:
PHP kôd:
PHP kôd:
Citat:
|
' vs " - trik je u tome što parser ne juri kroz string unutar single quotes u potrazi za promenljivima. Primer:
PHP kôd:
Što se includeova tiše __autoload() kod PHP5 je pravo blago. Plus pogledajte i SmartLoader. Najelegantije rešenje za include klasa koje sam video. Bukvalno me više nije briga gde su mi klase... |
You lazu SOB :) Zar ti nisu klase na jednom mestu? Zar je toliko problem zapamtiti jedan path? :)
|
Evo jos jedne optimizacije, ali od coveka koji ne gleda da izvuce po neku mikrosekundu vec malo vise.
http://phplens.com/lens/php-book/opt...ugging-php.php Ovo mu je bio prvi chapter knjige koju je poceo da pise, ali je posle toga uvideo da i nije pisac. Steta... Programer! |
|
mozda nije veliki gubitak u perfomansama kod upotrebe " umesto ', ali on svakako postoji, jer php ima vise posla. Ako se uzme u obzir da je veliki deo koda obicno neki posao sa stringovima, onda se ti gubici pomnoze bar x50 u skripti prosecne duzine. A kljucno pitanje je zasto koristiti navodnike uopste?
Ok ako zaista imas neke promenjive pa je lakse za pisanje, tome i sluzi...ali jako cesto mogu da se vide primeri gde se koristi iskljucivo ".." za obican plain text. Koja je tu logika ? Cista bahatost sa resursima... |
Off Topic: Citat:
|
Vreme je GMT +2. Trenutno vreme je 09:03. |
Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.