[ zgas @ 18.04.2007. 20:25 ] @
| Postovani
imam dilemu na koju bih zeleo da mi neko odgovori. Rec je o tome kada se putem include ili require metode stranica povezuje sa drugom stranicom koja u sebi ima jako puno funkcija (oko 20-30 i ta stranica je velicine oko 40kb). Interesuje me, sta se desava sa brzinom izvrsenja osnovne stranice, ako ona koristi samo dve-tri funkcije sa include/require stranice? Da li se ucitava svih 40kb podataka sa include stranice, i time se usporava izvrsenje, ili se ucitava samo 3-4 kilobajta include stranice koliko su "teske" te dve-tri funkcije koje se koriste?
Isto me interesuje, ako u include stranici imam jednu klasu (sa mnogo funkcija, koja je teska isto 40kb) da li se i u tom slucaju ona mora komplet ucitati (cime se uporava izvrsenje) ili se ucitavaju samo oni delovi koji su potrebni zaizvrsenmje...
Nadam se da ste me razumeli..
Svako dobro. |
[ Miroslav Ćurčić @ 18.04.2007. 21:22 ] @
Uvek se učitava cela datoteka, ali za 40kb to ne treba da te brine, tek na veličinama od preko 200kb postaje merljivo usporavanje, ali ipak neprimetno za posmatrača jer se sve to dešava na lokalnom disku servera.
A pošto je PHP interpreter (znači izvršava instrukciju po instrukciju) to što ima ne iskorištenih funkcija u datoteci smatraj da neće usporiti izvršavanje (u stvari hoće ali ne merljivo malo).
[ zgas @ 18.04.2007. 21:37 ] @
Znaci poenta je u tome da je html stranica koja se salje sto manja?
Da li je stvarno tako da PHP fajl koji generise HTML stranicu moze biti i 50kb - 100kb i to nece praviti dodatno usporenje od npr. 1-2 sekunde prilikom izvrsenja? Da li se to usporenje meri sekundama ili manjim merama?
[ Miroslav Ćurčić @ 19.04.2007. 01:04 ] @
Meri se u stotinkama sekunde.
Naravno druga je priča šta taj skript radi, dali otvara mysql, dali pristupa drugim sajtovima, dali se vrti u nekoj velikoj petlji radeći neke teže zadatke, sve to dodatno usporava, ali ako ga nisi opteretio poslom biće brz.
[ agvozden @ 19.04.2007. 08:47 ] @
Ovo je bitno u onoj meri u kojoj vodis racuna o resursiva servera.
Najbolje je funkcije podeliti po klasama, pa inicirati na pocetku samo one klase koje su stalno u upotrebi, a one koje se ponekad koriste inicirati tek kad zatrebaju (obavezan include_once ili require_once).
Veliki broj include-a ce povecati zahteve za memorijom. Ukoliko ti sql upiti nisu optimizovani, ukoliko su inicirani veliki nizovi a nepotrebni... sve to kada se sabere puta broj poseta moze doprineti povecanju upotrebljene memorije na serveru. Na malom broju poseta to se ne oseca, medjutim ukoliko je veci broj poseta, ili je recimo velika baza to ce se itekako osetiti.
Kako izbeci ovo?
E, pa, o tome treba voditi racuna - kod svake linije koda treba razmisliti o tome...
[ zgas @ 19.04.2007. 14:03 ] @
Pomenuo si da je obavezan include_once ili require_once? Kako oni uticu na brzinu izvrsenja?
[ Nemanja Avramović @ 20.04.2007. 00:03 ] @
Tako što nećeš dva puta učitati istu skriptu 
[ brainbuger @ 20.04.2007. 08:59 ] @
Cisto me zanima, kad uzmem i podelim klasu na nekoliko fajlova. Ali ne nasledjivanjem vec samo jednostavnim izdvajanjem tela velikih funkcija u posebne fajlove. Trebalo bi da na ovaj nacin smanjim velicinu fajla koji se ucitava, zar ne?
Code:
<?php //fajl u kojem je klasa
class A
{
public function getHTML()
{
require_once "func_getHTML.php";
return $rezultat;
}
}
?>
<?php //func_getHTML.php - fajl u kojem je izmesteno telo funkcije
//
//veci deo koda
//
$rezultat = "neka vrednost";
?>
[ milosijaa @ 03.05.2007. 17:53 ] @
Mislim da ti je ovo resenje veoma lose.
Jedna od lepih osobina klasa je ta sto ti je sve na jednom mestu, tj. "grupisanje" koda po nekim logickim celinama.
Tvojim resenje samo rasipas kod nepotrebno. Da ne pricamo sta bi bilo da imas desetak klasa i da svaka preba da "inkluduje" tela svojih vecih metoda...
Mislim da ovim nista neces dobiti.
U krajnjem slucaju
PHP ima funkciju "microtime" ili tako nesto pa testiraj sta je brze :) npr
$start = microtime();
// neki kod
$end = microtime();
$end = $end - $start;
echo $end;
[ brainbuger @ 03.05.2007. 23:16 ] @
Pitanje je bilo vise teorijsko, jer je jedna od dilema bila koliko velicina fajla u kojem je klasa, utice na brzinu inicijalizovanja klase. Naravno da nisam mislio da izdvajam sva tela velikih funkcija u posebne fajlove :) do duse, mozda bi se ovo i moglo iskoristiti na nekom specificnom 'uskom grlu' gde je app u odmakloj fazi i gde je kasno za redizajn klase. BTW, to sto zoves 'grupisanje koda' u OOP se naziva enkapsulacija.
Pozz
[ milosijaa @ 04.05.2007. 12:48 ] @
Rasprava o pojmovima(grupisanje - enkapsulacija) je nije tema???. Rec koja ti toliko smeta je pod navodnicima. Jednostavno volim da ubacim srpsku rec gde god mogu ako se ne gubi smisao. :)
pozz.
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|