|
15. 05. 2006. | #1 |
Goran Pilipović
Sir Write-a-Lot
|
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
__________________
Goran Pilipović a.k.a. Ugly Fingers Bradley f.k.a. bluesman I don't always know what I'm talking about but I know I'm right! |
15. 05. 2006. | #2 |
profesionalac
Professional
|
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...
__________________
The knack of flying is learning how to throw yourself at the ground and miss. Poslednja izmena od Bojan Zivanovic : 15. 05. 2006. u 22:52. |
15. 05. 2006. | #3 |
Super Moderator
Invented the damn thing
Datum učlanjenja: 06.06.2005
Poruke: 2.371
Hvala: 370
701 "Hvala" u 194 poruka
|
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. |
16. 05. 2006. | #4 | ||
Goran Pilipović
Sir Write-a-Lot
|
Citat:
PHP kôd:
PHP kôd:
Citat:
__________________
Goran Pilipović a.k.a. Ugly Fingers Bradley f.k.a. bluesman I don't always know what I'm talking about but I know I'm right! |
||
16. 05. 2006. | #5 |
Direktor Kombinata
Invented the damn thing
Datum učlanjenja: 07.06.2005
Poruke: 2.669
Hvala: 44
119 "Hvala" u 64 poruka
|
' 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...
__________________
activeCollab - Project Management and Collaboration Tool iz domaće kuhinje | area51.rs - Blog Poslednja izmena od Ilija Studen : 16. 05. 2006. u 01:15. |
16. 05. 2006. | #6 |
Goran Pilipović
Sir Write-a-Lot
|
You lazu SOB Zar ti nisu klase na jednom mestu? Zar je toliko problem zapamtiti jedan path?
__________________
Goran Pilipović a.k.a. Ugly Fingers Bradley f.k.a. bluesman I don't always know what I'm talking about but I know I'm right! |
16. 05. 2006. | #7 |
expert
Expert
Datum učlanjenja: 27.11.2005
Poruke: 543
Hvala: 47
57 "Hvala" u 31 poruka
|
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! |
16. 05. 2006. | #8 |
Ivan Dilber
Sir Write-a-Lot
|
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...
__________________
Leadership is the art of getting people to want to do what you know must be done. |
16. 05. 2006. | #9 | |
Super Moderator
Invented the damn thing
Datum učlanjenja: 06.06.2005
Poruke: 2.371
Hvala: 370
701 "Hvala" u 194 poruka
|
Citat:
|
|
|
|
Slične teme | ||||
Tema | Početna poruka teme | Forum | Odgovori | Poslednja poruka |
WordPress.com i optimizacija | Iceman | Marketing i SEO | 6 | 13. 07. 2010. 00:51 |
MySQL optimizacija | bluesman | SQL baze podataka - Sponzor: Baze-Podataka.net | 2 | 27. 02. 2009. 16:47 |
Pomoć: optimizacija za IE6/7! | maksim | (X)HTML, JavaScript, DHTML, XML, CSS | 4 | 02. 12. 2007. 12:44 |
CSS optimizacija | Vladimir Nikolic | (X)HTML, JavaScript, DHTML, XML, CSS | 25 | 23. 08. 2006. 22:54 |
optimizacija koda? | Blood | SQL baze podataka - Sponzor: Baze-Podataka.net | 12 | 26. 03. 2006. 18:53 |