Autor Zpráva
Ottik
Profil *
Ahoj, mám soubor funkce.php, ale je tam toho docela dost,... nebylo by lepší (z hlediska rychlosti, nevím jak dlouho php trvá načíst všechny funkce co bych tam eventuelně měl) kdybych to namísto funkcí napsal do souboru? Nebo myslíte že je to jedno?
namísto:
pridej_rubriku('novinky');
bych to psal takto
include 'pridej_rubriku.php';
Keeehi
Profil
Ottik:
No můžeš si to změřit. Ono obojí bude v řádu milisekund a níže, takže reálně to řešit nemusíš.

Nicméně pokud to vezmeme teoreticky, tak definování nějaké funkce moc procesorového času nestojí. Naproti tomu operace se soubory na disku zase tak svižná není. Je tedy rychlejší načíst jeden soubor se stem funkcí než třicet souborů s jednou funkcí. Nějaký limit tu určitě bude. Pokud by jsi měl miliardu funkcí a reálně z toho potřeboval dvě, tak by už nejspíše bylo výhodnější si načíst jen ty dva soubory. Ovšem v takovém případě by jsi řešil ještě druhý problém, jak miliardu souborů na disku zorganizovat, protože do jedné složky bys jich tolik nenacpal.

Závěr je tedy takový, že řešení s jedním souborem by mělo být rychlejší ovšem rozdíl je tak nepatrný, že to nemá vůbec cenu řešit.
ottik
Profil *
Ok díky
Joker
Profil
Ottik:
Z hlediska rychlosti je to obvykle jedno.
Tipoval bych, že v běžných situacích tam nebude měřitelný rozdíl a v extrémních případech (typu jeden obrovský kód versus tisíce souborů) bude o trochu rychlejší jeden velký include.

Mnohem důležitější je hledisko přehlednosti, udržovatelnosti a znovupoužitelnosti kódu.
Z toho pohledu je lepší si kód organizovat do nějakých logických celků.
U objektového programování se většinou dává co třída to soubor.
N71
Profil *
Keeehi:
Je tedy rychlejší načíst jeden soubor se stem funkcí než třicet souborů s jednou funkcí.
S tímto tvrzením bych dneska byl už opatrnější. Od verze 7 PHP kešuje jak vzteklé a do verze 7.4 pravděpodobně přibude i preload. Ve finále už bude skoro jedno, jestli má script jeden nebo milion souborů.

Platí víceméně to co psal Joker – program by měl především dodržovat nějaký ten PSR standard, aby se pak v tom příslovečné prase mělo šanci vyznat.
Keeehi
Profil
N71:
Ano, to já vím. Také je dnes spoustu serverů už postaveno na ssd discích takže přístup k souborům může být také řádově lepší než dříve.
Čísla jsem si vycucal z prstu ale o to vlastně nejde. Chtěl jsem jen ukázat, že určitý rozdíl tam být může ale u naprosté většiny projektů to vůbec nemá smysl řešit.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0