DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   PHP (http://www.devprotalk.com/forumdisplay.php?f=9)
-   -   Performanse velikih PHP-MySQL projekata (http://www.devprotalk.com/showthread.php?t=237)

shoba 25. 09. 2005. 16:16

Performanse velikih PHP-MySQL projekata
 
Evo jos jednog ne-PRO pitanja :)

Pravis PHP + MySQL sajt
i zahtev je da sajt mora izgurati veliki broj clanova
(npr preko 10K clanova, preko 400 online).

Kojih se pravila pridrzavate pri programiranju?
Sta nikako ne sme da se radi, a sta je 'dobra praksa'?
Vasa iskustva u vezi performansi kod velikih projekata.

Hvala!
ps. ne znam smarty :) a i malo je vremena da ga ucim :)

bluesman 25. 09. 2005. 18:27

1. Zaboravi smarty za to :)

Ostalo sledi kad budem imao vremena :)

Ilija Studen 25. 09. 2005. 18:33

Takva skripta spada u medium traffic tip skripti i tu optimizacija za brzinu ne bi trebala da bude preterano bitna stvar pod uslovom da se držiš par prostih parvila. Uostalom, pogledaj ovu temu, tu ima dosta korisnih saveta.

PS: Obavezno enkodiraj skriptu. Time ćeš dobiti i do 200% ubrzanje izvršavanja, a da ne takneš kod. Naravno, dosta parametara utiče na ukupno vreme izvršavanja, ali enkodiranje daje ubedljivo najbolje rezultate kad je čist PHP u pitanju. Za dalje obavezno koristi keširanje, optimizuj upite (učitavaj samo ono što ti treba i kad ti treba) itd.

Takođe, ne zaboravi na jednu stvar: premature optimization is the root of all evil. Ovo isto valja imati na umu ;)

dinke 25. 09. 2005. 19:44

Citat:

Originalno napisao Ilija Studen
premature optimization is the root of all evil.

Ovo je inace citat u podnaslovu poglavlja naslovljenog sa "How do I optimize my code" u PHP Anthology Vol II (inace u pitanju su reci Donald E. Knuth-a).

E sad, posto mi je Ilija "ukrao" omiljeni citat, mogu samo da ti kazem da je pre svega bitan dizajn. Moja omiljena uzrecica je da su brzi programeri skuplji od brzih procesora. Dakle, bitno je da aplikacija ima dobar dizajn koji ce ti omoguciti lake izmene na aplikaciji, nadogradnju, code reuse i sl. pa tek onda eventualno popravljati perfomanse.

kalkulus 25. 09. 2005. 19:44

Citat:

Originalno napisao Ilija Studen
Takođe, ne zaboravi na jednu stvar: premature optimization is the root of all evil. Ovo isto valja imati na umu ;)

shta tacno podrazumevash pod ovim, prvo naterati neshto da radi pa ga onda optimizovati ili neshto drugo?

Petar Marić 26. 09. 2005. 09:51

Citat:

Originalno napisao kalkulus
shta tacno podrazumevash pod ovim, prvo naterati neshto da radi pa ga onda optimizovati ili neshto drugo?

Mislim da ako nešto moraš naterati da radi, onda programiraš na potpuno pogrešan način :p

kalkulus 26. 09. 2005. 12:00

Citat:

Originalno napisao BlueIce
Mislim da ako nešto moraš naterati da radi, onda programiraš na potpuno pogrešan način :p

istina :)
dakle, zanemaricemo moj losh izbor reci i nastaviti dalje

Petar Marić 26. 09. 2005. 18:56

Nema ozbiljne optimizacije bez profiling alata.

Ilija Studen 26. 09. 2005. 21:49

Citat:

Originalno napisao kalkulus
shta tacno podrazumevash pod ovim, prvo naterati neshto da radi pa ga onda optimizovati ili neshto drugo?

Ne bukvalno. Ako se samo trudiš da čisto nateraš nešto da radi najverovatnije ćeš skrpiti nešto što niko posle tebe neće moći raspetljati.

Optimizacija dolazi tek na kasnije, kad je aplikacija već u potpunosti funkcionalna. Naravno, platformu biraš u skladu sa specifikacijom: nećeš za nešto gde je prioritet brzinu izabrati Ruby ili Javu (u domenu web aplikacija), već PHP, Perl... Dok kodiraš ti već manje više optimizuješ kod za brzinu ("dobre programerske navike"), ali to ti definitivno nije cilj. Cilj ti je da napraviš funkcionalnu aplikaciju koja radi posao. Tek kad je sve gotovo uzimaju se test podaci, profiler alati i slične "igračkice" i počinješ da juriš uska grla i optimizuješ za brzinu.

Generalno postoje dve brzine: brzina izvršavanja i brzina razvoja, ali to je već neka druga priča...

PS: Ovo je manje više sa praktične strane, a sada će Petar da počne da teoretiše :P

McKracken 27. 09. 2005. 15:57

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" :)


Vreme je GMT +2. Trenutno vreme je 21:10.

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.