[ dr ZiDoo @ 01.03.2007. 15:50 ] @
Uvjek aktuelna tema ubrzavanja PHP aplikacija:

http://www.blueshoes.org/en/developer/php_bench/

Za mene jako interesantan podatak:

Citat:

1: foreach($aHash as $key=>$val) $aHash[$key] .= "a"; Total time: 19[ms]
2: while(list($key) = each($aHash)) $aHash[$key] .= "a"; Total time: 5[ms]


Jel radi ko od pristnih na nekim optimizacijama? Da to podjeli sa svima nama ovde.

[Ovu poruku je menjao Goran Rakić dana 12.06.2010. u 14:33 GMT+1]
[ ppavlovic @ 01.03.2007. 17:44 ] @
Mislim da vecina nas nece imati potrebe da optimizuje na nivou foreach petlji. Ne valja sitnicariti. Instaliraj eAccelerator i dobices 30% ubrzanja.

Ukljuci kesiranje upita kod MySQL4 i dobices do 40% ubrzanja.

Optimizuj citanje fajlova i smanji broj pristupa disku, dobices jos X% ubrzanja.

Kesiraj izlaz skripti na odredjeni vremenski period (dovoljno 10 minuta) i dobices nenormalno mnogo ubrzanja. Ako ne moras da upitas bazu za nove podatke / azuriranje probaj da izbegnes kacenje na bazu.

Sesije makni u shared mem ili u bazu.

Obezbedi zasebne racunare za Apache & MySQL.

Jaci CPU i sto vise RAM, RAM, RAM, RAM.

I moj omiljen metod... Kesiraj rezultate upita ka bazi u shared mem (pomocu eAccelerator ili APC). Nesto grubo sam opisao ovde: http://blog.redizajnsajtova.co...x-or-more-in-just-few-minutes/


P.S. Kad ce momenat.com ?


[ japan @ 01.03.2007. 18:10 ] @
evo jos nekih meni zanimljivih trikova ovog tipa - http://ilia.ws/archives/12-PHP-Optimization-Tricks.html
[ dr ZiDoo @ 01.03.2007. 23:48 ] @
@poavloic,

da ali kada ispucas sve klise kao kupavoanje vise masine i kada kesiranje nije opcije optimizacija foreacha zvuci super. Dobija se 3.5x ubrizanje, a ja bar foreach korisim jako cesto tak da mi ovo dodje extra. Nek ustines na foreachu 1/3 sekunde na jednom fajlu to je extra.
[ ppavlovic @ 02.03.2007. 00:24 ] @
Jesi li probao da pustis neku skriptu kroz xdebug / WinCacheGrind da vidis na cemu se gubi vreme?

Citat:

Given is a Hash array with 100 elements, 24byte key and 10k data per entry.

foreach($aHash as $key=>$val) $aHash[$key] .= "a"; Total time: 19[ms]
2: while(list($key) = each($aHash)) $aHash[$key] .= "a"; Total time: 5[ms]


Sinak, da iteriras kroz 100 elemenata niza dobices 14ms ubrzanja. Da bi za tu ustedu dobio 1/3 sekunde, trebace ti asocijativni array sa ~2380 elemenata velicine... Sto najverovatnije nikad neces da koristis. :-)

1GB Ram = 100evra, koliko kosta 1Kg zivaca?

Manite se teoretisanja i radite nesto.

[ dr ZiDoo @ 02.03.2007. 09:25 ] @
Naravno pogledaj rezultate za mutidimenzione nizove.

Array od 200 clanova x 3 dimneznije = ~ 1/6 sec * 6 poziva = 1sec . Ako imas 36 ljudi trenutno online to je mnogo.
neci da pricam ako neko razvija neki algoritam za poredjenje velikog broja stringova, pa ima 3-4 ukljestena foreacha sa po 100 clanova

Sinak, man se ti ponizavanja drugih ljudi i dodaj mi link nekog finog servera gdje 1GB rama kosta 100e da si kupim odma pola kile.
[ ppavlovic @ 05.03.2007. 03:24 ] @
http://www.ovh.com/fr/produits/superplan2007.xml

I mozes slobodno da me zoves "bato".

P.S. Ne ponizavam, samo pokazujem svoju superiornost.
[ dr ZiDoo @ 05.03.2007. 10:17 ] @
Nije da mi ide francuski ali ovo djeluje kao site za iznajmljivanje masina, osim ako kada kupise server ne dobijes 4 adrese besplatne :)
Usput jedan gigabajt DDR2 ECC memorije kosta nesto sitno iznad 200$

Uzivaj u svojoj superiornosti :}
[ milosijaa @ 30.03.2007. 12:00 ] @
ALo ljudi sta ste vi? Hardverasi ili softverasi???

Nije li interesantnije ubrzati rad neke aplikaije bez ulaganja u novi hardver? Mislim to bi kao i trebao da bude jedan od zadataka programera.
[ hatebreeder @ 26.05.2007. 14:43 ] @
Citat:
milosijaa: ALo ljudi sta ste vi? Hardverasi ili softverasi???

Nije li interesantnije ubrzati rad neke aplikaije bez ulaganja u novi hardver? Mislim to bi kao i trebao da bude jedan od zadataka programera.


Cilj jeste da radi brze sa istim hardwareom ali oko ovakvim sitnicama ne treba stvarno posvecivati toliko paznje u nekim slucajevima je zaista lagodniji rad sa foreach-om a nekim sa whileom. Ne treba dzaba komplikovati kod, nije ovo ASM programiranje...

Znaci mora da su uravnotezeni brzina rada kao i preglednost koda
[ zedin @ 20.05.2008. 21:52 ] @
Bez obzira sto izgleda ovako, mislim da je bolje da kod bude pregledniji i organizovaniji nego svrljat gluposti. Kada je potrebana brzina onda je bolje napisat pametniji kod, zamisli mučiš se koja je petlja bolja, a 1000 linija koda propane zbog jednog loseg SQL upita.

[ my_hero @ 08.07.2008. 13:01 ] @
Pozdrav svima i ja sam se zamlacivao sa brzinom PHP-a posto koristim Zend Framewrok
sve u svemu APC mi je poprilicno pomogao ne samo opcode cache nego i feature da mozes da strpas u memoriju arrays ili neke druge varijable/objekte
# primer posto ji dosta serijalizovanih nozova koji su na disku, samo citanje sa diska relativno je dugacak period, ubacivanje tih nizova u memoriju dobijate ubrzanje od 4-5 puta

na kraju sam dobio ubrzanje sa 6 req/sec na 15 req/sec , (jos jedna stvar oko testiranja brzine , 100% slucajeva benchmark koji pozove samo jednom stranu i izbaci milisekunde je skorz drukciji od benchmarka koji povuce stranicu sa aplikacije koja je pod opterecenjem , nor apache AB test moze da posluzi kao dobar benchmark ...apache/bin/ab -n 200 -c5 URL je dobar benchmark

Sve u svemu i na kraju krajeva postignem nekih 0.3 sec po pagu al klijentu/crawleru treba vise vremena da skine taj kontent u proseku 0.8 sekundi sto znaci da je mnogo bolje optimizovati HTML broj CSS-a broj JS-a kao i broj sklika/slikica, jedan od sajtova koji imam je imao oko 30 JS fajlova zbog Jqueija i njegovih plugins koje su mi trebali, fire bug mi je prikazao lodovanje strane na nekih 9 sekundi !!!!
sta sam odradio je da sve te jqury plugins kao i core lib stavim u jedan JS + minified (ne gziped) i srana se ubzala na nekij 5 sekundi sto je i dalje mnogo al nije strasno posto HTML se izbaci u roku od 2 sec pa se loaduju JS nakon toga, tako da optimizacija PHP-a sa npr 0.6 na 0.3 sekunde se genrealno malo isplati
[ rajkoBekrija @ 12.12.2008. 00:12 ] @
mislim da je malo glupo da pises o brzini posto nisi ni naveo na cemu se vrti server. 0.6-0.3 s inace uzasna vremena. Zamisli dnevno 2M korisnika.
I naravno super sto je neko spomenuo APC, zaista mislim da vrijedi barem testirati ko ne mislisi koristiti, takodje je zanimljiv i memcache server - recimo u kojem bi se cuvali results-i kompleksnijih query-a koji vracaju manje kolicine podataka, bla, bla