DevProTalk

Forumi IT profesionalaca
web development, web design, e-business, SEO


Idite nazad   DevProTalk > Web development i web aplikacije > PHP
Želite da se reklamirate ekskluzivno na ovoj poziciji? Javite se

PHP PHP aplikacije, Smarty, PEAR

Odgovori
 
Alati teme Način prikaza
Staro 27. 09. 2005.   #11
boccio
šegrt
Professional
 
Avatar boccio
 
Datum učlanjenja: 10.06.2005
Lokacija: nbgd
Poruke: 427
Hvala: 27
14 "Hvala" u 8 poruka
boccio is on a distinguished road
Default

Citat:
Originalno napisao McKracken
Naravno, najbitnije je da planiras scalability. Mnogi su pukli jer im je sve radilo lepo, ali kad je trebalo da se skalira pocinje "veselo popodne"
Sto dovodi do zanimljivog pitanja...

Kako radite load&stress testing aplikacije? Na koji nacin simulirati, recimo, 1.000 konkurentnih zahteva? Nailazio sam na neke alate, tipa http://www.loadtestingtool.com/, ali jel to to, ili se koristi i nesto iz domace kuhinje?
__________________
Vivvo CMS
Samo za male pare se mnogo radi.
boccio je offline   Odgovorite uz citat
Staro 27. 09. 2005.   #12
dinke
Super Moderator
Invented the damn thing
 
Avatar dinke
 
Datum učlanjenja: 06.06.2005
Poruke: 2.371
Hvala: 370
701 "Hvala" u 194 poruka
dinke je pravi dragi kamendinke je pravi dragi kamendinke je pravi dragi kamendinke je pravi dragi kamendinke je pravi dragi kamendinke je pravi dragi kamendinke je pravi dragi kamen
Default

Svojevremeno sam za SiteBuilder (www.cafeid.com) imao zahtev da mora da podrzi 10 000 korisnika. Da bi smo simulirali ponasanje sistema sa 10k korisnika napravio sam script koji kreira 10k accounta kako bi se na odgovarajuci nacin opteretio sistem. Kolega je pravio script koji simulira simultane konekcije (u Perlu) pa smo pratili load sistema. Inace (malo se samoreklamiram SiteBuilder je preveden i na srpski (koristi se gettext) pa mozete i da pogledate kako izgleda ako nekoga interesuje.
__________________
Caught in a Web|Blogodak
With great power comes great responsibility!
dinke je offline   Odgovorite uz citat
Staro 27. 09. 2005.   #13
Petar Marić
Python Ambassador
Master
 
Avatar Petar Marić
 
Datum učlanjenja: 06.06.2005
Lokacija: Novi Sad
Poruke: 602
Hvala: 28
27 "Hvala" u 17 poruka
Petar Marić će postati "faca" uskoro
Pošaljite ICQ poruku za Petar Marić
Default

@Ilija: E baš neću, tebi u inat
Petar Marić je offline   Odgovorite uz citat
Staro 18. 10. 2005.   #14
ivanhoe
Ivan Dilber
Sir Write-a-Lot
 
Avatar ivanhoe
 
Datum učlanjenja: 18.10.2005
Lokacija: Bgd
Poruke: 5.320
Hvala: 104
2.344 "Hvala" u 583 poruka
ivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svima
Pošaljite poruku preko Skype™ za ivanhoe
Default

eh, da ne budu svi saveti teoretske prirode (a i nov sam na forumu pa moram da se pravim pametan ) evo par saveta koji su meni mnogo znacili:

1. optimizacija koda je realno potrebna u svega 10-tak % koda, pri cemu su ti naravno petlje glavni kandidati...sav ostali trud je cisto trosenje developer sati... zato profilisi blokove koda sa microtime() i vidi sta trosi najvise vremena.. takodje proceni koje ce skripte da nose najveci load pa se samo oko njih trudi, one koje se pozivaju jednom u 3 dana su ti potpuno nebitne u ovom scenariju... oko optimizacije php koda ne treba biti previse paranoican jer realno najvece vreme ti odlazi na ucitavanje i kompajliranje skripte, a tu nema pomoci (osim Ilijinog saveta sa pocetka threada)

2. Konekcija na bazu je nasjporiji deo rada sa bazom, zato koristi samo jednu bazu i perzistentne konekcije(samo pazi da tako svako apache dete dobije po jednu stalnu konekciju koju nikad ne prekida, sto moze da bude problematicno ako je broj konekcija limitiran ili ima previse apache procesa). Takodje procitaj vrlo pazljivo savete za optimizaciju iz mysql helpa, odlicni su. Ovo se u praxi pre svega odnosi na upotrebu tabela sa fixnim duzinama polja kad god je moguce, i na pravilno indexiranje tabela. Tabele koje se najvise koriste (recimo ako sessione cuvas u bazi) obavezno pravi bez varchar i text polja, znaci strogo tipovi fixne duzine, jer tako radi znatno brze. Kod indexiranja treba obratiti paznju na indexe po vise polja i kako ih koristi mysql, tako moze dosta da se dobije na brzini. Takodje treba paziti da svaki index usporava insertovanje u bazu, znaci tamo gde se puno insertuje gledaj da ti treba malo indexa. I jos stvar koja mi nikad nije bila jasna, ali je provereno tacna, treba voditi racuna o redosledu uslova iza where, jer nije svejedno kojim su redosledom dati zavisno vec od indexa koji su na raspolaganju. Mysql ima foru da pogledas koje indexe baza koristi za koji upit pa uvek proveri da li radi onako kako si ti zamislio.

3. par stvari oko mysql-a koje mislim da ne pisu u helpu: mysql se ne snalazi najbolje sa velikim tabelama, znaci deli tabele na manje kad god to ima smisla, bice ti mnogo brze. Takodje ne ume bas najbolje da radi sa joinovima, pogotovo kad su velike tabele u pitanju, cesto je mnogo brze uraditi 2 odovojena upita pa ih spojiti iz php-a (treba izmeriti vreme pa videti naravno).

eto ovo je sve sto mi momentalno pade na pamet, a i mislim da je sasvim dovoljno za vrlo pristojan rad.. mada u principu vazi savet koji je vec ponovljen vise puta: Pisi kod lak za odrzavanje, pa tek zatim optimizuj i to posmatrajuci sajt u realnom radu, pa ako snimis da ima gusenja popravljaj samo te skripte koje prave problem...

Poslednja izmena od ivanhoe : 18. 10. 2005. u 22:32.
ivanhoe je offline   Odgovorite uz citat
Staro 18. 10. 2005.   #15
Petar Marić
Python Ambassador
Master
 
Avatar Petar Marić
 
Datum učlanjenja: 06.06.2005
Lokacija: Novi Sad
Poruke: 602
Hvala: 28
27 "Hvala" u 17 poruka
Petar Marić će postati "faca" uskoro
Pošaljite ICQ poruku za Petar Marić
Default

Hm, zaista ne mogu da prihvatim microtime kao relevantan benchmark - postoji jako dobar razlog zašto se ljudi upozoravaju da ne pišu svoje f-je već da koriste biblioteke koje dolaze uz samu platformu.
Pošto OS-ovi koje tradicionalno koristimo nisu RTOS (Real Time OS) ne možemo znati kad će se i koliko će se procesor preključiti na drugi proces, tako da imamo veoma nepouzdana očitavanja sa izrazitom relativnom greškom.
Sa veoma kratkim vremenima relativna greška raste i sve postaje veoma veselo za profiling...

I could go on and on, al opet će me Ilija prozvati da teoretišem
__________________
Python Ambassador of Serbia
Petar Marić je offline   Odgovorite uz citat
Staro 24. 10. 2005.   #16
ivanhoe
Ivan Dilber
Sir Write-a-Lot
 
Avatar ivanhoe
 
Datum učlanjenja: 18.10.2005
Lokacija: Bgd
Poruke: 5.320
Hvala: 104
2.344 "Hvala" u 583 poruka
ivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svima
Pošaljite poruku preko Skype™ za ivanhoe
Default

pa skroz si u pravu, ali jel postoji neki bolji nacin od microtime() za ovo u php-u?


nije savrseno,ali to resis tako sto ne radis profilisanje samo jednom(nego jedno 100-njak puta sa dovoljnim sleepom izmedju ponavljanja), i naravno ne testiras na production serveru nego na kucnom boxu na kome si pogasio sve ostale zahtevne procese...

statisticki greska bi trebalo da je slucajna promenjiva uniformne raspodele u vremenu, pa onda ne utice na relativne odnose kod poredjenja, to jest ako je dobijena srednja vrednost iz npr. 100 merenja kod jednog pristupa 3 puta brza od srednje vrednosti nekog drugog resenja, onda je to prilicno siguran orijentir, jer bi trebalo da je srednja vrednost greske ista kod oba slucaja...
ivanhoe je offline   Odgovorite uz citat
Staro 24. 10. 2005.   #17
dinke
Super Moderator
Invented the damn thing
 
Avatar dinke
 
Datum učlanjenja: 06.06.2005
Poruke: 2.371
Hvala: 370
701 "Hvala" u 194 poruka
dinke je pravi dragi kamendinke je pravi dragi kamendinke je pravi dragi kamendinke je pravi dragi kamendinke je pravi dragi kamendinke je pravi dragi kamendinke je pravi dragi kamen
Default

Uzgred, kad smo vec kod profiling-a da pomenem dva korisna alata:

XDebug - Debugger
http://www.xdebug.org/

Advanced PHP Debugger
http://pecl.php.net/apd

Vec postoje linkovi u onoj top temi sa resursima, ali rekoh da postujem i ovde. Igrao sam se sa XDebug-om svojevremeno i mogu da kazem da je fin alatic za profiling (korisniji od time f-je svakako) . Tu je naravno i Zend studio, ali on nije besplatan.
__________________
Caught in a Web|Blogodak
With great power comes great responsibility!
dinke je offline   Odgovorite uz citat
Staro 24. 10. 2005.   #18
Petar Marić
Python Ambassador
Master
 
Avatar Petar Marić
 
Datum učlanjenja: 06.06.2005
Lokacija: Novi Sad
Poruke: 602
Hvala: 28
27 "Hvala" u 17 poruka
Petar Marić će postati "faca" uskoro
Pošaljite ICQ poruku za Petar Marić
Default

Statistika se baš i ne da jednostavno primeniti u tom slučaju... Preključivanje na drugi proces je stohastično, te iskreno rečeno mislim da bismo pre mogli primeniti ponešto iz teorije haosa, nego iz konvencionalne matematike.
Najsigurniji način bi bio da se napravi virtuelna mašina i da se sva merenja rade u odnosu na nju - razlog zašto je u Javi 5 profiling znatno lakši. Na našu žalost IIRC Zend engine nije baš najoštriji nož u fioci (jelda zvuči glupo na srpskom ) što se tiče izolovanja virtuelne mašine i samog profilisanja, tako da je korišćenje workarounds nezaobilazno.

No, opet ja teoretišem
__________________
Python Ambassador of Serbia
Petar Marić je offline   Odgovorite uz citat
Staro 24. 10. 2005.   #19
dinke
Super Moderator
Invented the damn thing
 
Avatar dinke
 
Datum učlanjenja: 06.06.2005
Poruke: 2.371
Hvala: 370
701 "Hvala" u 194 poruka
dinke je pravi dragi kamendinke je pravi dragi kamendinke je pravi dragi kamendinke je pravi dragi kamendinke je pravi dragi kamendinke je pravi dragi kamendinke je pravi dragi kamen
Default

Citat:
Originalno napisao Petar Marić
No, opet ja teoretišem
A gore si rekao da neces, cccc

@ivanhoe
Ovi saveti za mysql optimizaciju su odlicni. To koliko mysql brze radi sa poljima fiksne duzine vidis tek kad tabele narastu na par desetina Gbyte-a. To sam naucio pre par godina na svojoj kozi kada sam morao da optimizujem neke tabele sa vise miliona usera. Stvari tipa username, ip adresa i sl za koje znas da ne idu vise od 15 karaktera, obavezno stavljati kao char a ne varchar.
__________________
Caught in a Web|Blogodak
With great power comes great responsibility!
dinke je offline   Odgovorite uz citat
Staro 09. 12. 2005.   #20
Bojan Zivanovic
profesionalac
Professional
 
Avatar Bojan Zivanovic
 
Datum učlanjenja: 06.06.2005
Lokacija: Pančevo - Pariz
Poruke: 287
Hvala: 6
8 "Hvala" u 8 poruka
Bojan Zivanovic is on a distinguished road
Pošaljite poruku preko Skype™ za Bojan Zivanovic
Default

Vidim da bluesman spominje da nema leba od Smarty-ja za vece projekte..
Koliko je velik taj udar sto se performansi tice, i da li bi se moglo zaobici (cache, a smarty kompajlira samo jednom template...)?
I da li bi brzi bio neki template engine koji direkt koristi PHP, kao sto je Savant?
Mislim, znam da bi bio brzi, al pitanje je da li bi i on radio posao..
Bojan Zivanovic je offline   Odgovorite uz citat
Odgovori



Pravila pisanja
Možete ne započinjati nove teme
Možete ne slati odgovore
Možete ne slati priloge
Možete ne izmeniti svoje poruke
vB kôd je Uključen
Smajliji su Uključen
[IMG] kod je Uključen
HTML kôd je Isključen
Pogledajte forum

Slične teme
Tema Početna poruka teme Forum Odgovori Poslednja poruka
Idealna dev organizacija projekata (SVN, serveri, deployment, itd.) ? ivanhoe Web Hosting, web serveri i operativni sistemi 4 16. 09. 2009. 16:19
Skidanje velikih filmova? vlada.jerkovic Web aplikacije, web servisi i software 5 14. 01. 2009. 04:45
U sredu, 19. marta u PKS bice predstavljani projekata elektronske uprave Aleksandar Marković Opušteno 0 17. 03. 2008. 13:51
VB vs. SMF. performanse? pcigre PHP 3 13. 03. 2008. 22:07


Vreme je GMT +2. Trenutno vreme je 06:33.


Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.
Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.