[#4]
Re: PHP: czy include zawsze includuje?
@ntx,
post #2
Dzięki za odpowiedź! Sprawa z include bardzo mnie zastanawiała z czysto-programistycznego punktu widzenia jak i z faktu, że w grze Ondorr Drakmo, którą piszę na przeglądarki - dla przejrzystości kodu większość rzeczy jest zawarta w include. Zresztą chciałem też te funkcje po to umieścić na zewnątrz by nie dopuścić właśnie do wczytywania całości kodu znajdującego się w jednym pliku php. A ma to zasadnicze znaczenie w tym przypadku, gdyż plik ten przeładowuje się co 4 sekundy (jest to gra czasu rzeczywistego). Więc myślę, że nawet jeżeli plik mający aktualnie np: 25kb zawiera 100 warunków prowadzących do include, to wczytane właśnie jest te 25kb a nie np: 120kb gdyby warunki te były integralną częścią tego kodu przeładowywanego. Na dodatek przeładowanie to trzeba pomnożyć przez ilość graczy, którzy aktualnie znajdują się w grze. Nie bawię się tu w jakieś Ajaxy i inne rzeczy - raz, że nie znam tej technologii a dwa, że to gra, która także działa pod klasycznymi przeglądarkami amigowymi.
Myślę więc, że ma to znaczenie dla kombajnu jakim staje się Ondorr Drakmo, na dodatek jak do tej pory - znajduje się na darmowym, nieco wolnym serwerze - i czasem zdarza mi się przekroczyć maksymalną ilość uruchomienia skryptu - dostaję taki ładny komunikat - rzadko, ale zdarza się w testach. Wyliczając w przybliżeniu sam wczytywany PHP (poza grafikami) - co 4 sekundy wczytywane jest 24,5kb - wykonanie ruchu to dodatkowe aż 118kb a to wszystko plus właśnie include, które razem zajmują 132kb. I tak większość rzeczy (funkcji JavaScript) zawarta jest w stałych ramkach by nie wczytywać ich co chwilę. Ogólnie cały silnik zawiera 208,5kb więc musiałem właśnie uciec z tą liczbą rozdrabniając wszystko na include, funkcje zewnętrzne, etc. przy wykonywaniu poleceń, interakcji itd.