Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] optymalizacja kodu dla początkujących
Forum PHP.pl > Forum > Przedszkole
Taifun
witam,
mam kilka pytan odnośnie szybszego wykonywania kodu PHP:

1) Jak includuje zewnętrzne pliki np.
  1. <?php include("test.php"); ?>

to potem w tym pliku test.php lepiej dać bez ?>
  1. <?php echo 'jakiś kod';

czy go zamknąć ?>:
  1. <?php echo 'jakiś kod'; ?>


2) Jak ładuje np. zestaw funkcji
  1. <?php include("funkcje.php"); ?>

i w tym pliku są funkcje to gdzie one są przetrzymywane, czy zajmują jakieś zasoby, jeśli tak to jakie

3) Czy jest bardziej optymalny sposób na zmierzenie czasu ładowania strony od:
  1. <?php
  2. $starttime = microtime(true);
  3.  
  4. //KOD DO WYKONANIA
  5.  
  6. $stoptime = microtime(true);
  7. $total=round($stoptime-$starttime,5);
  8. echo 'Czas ładowania strony: '.$total.' sekund';
  9. ?>


4) Do ilu rekordów mogę używać funkcji rand w mysql bez znaczącego spadku wydajności i zwiększenia obciążenia?

5) Potrzebuję prosty skrypt do cache zapytań sql do kodu strukturalnego (nie znam oop). Jest coś prostego i wydajnego?

6) Czy są klasy cache, które cache;ują cały kod na dany okres czasu na tzw. chama ale są wydajne?

Z góry dziękuję za odpowiedzi.
wNogachSpisz
Nie rozumiem nic.
No może poza jednym, jeśli szukasz bibliotek do cachowania, zerknij na te z http://pear.php.net/
Crozin
1. Użycie "?>" nie wpływa na wydajność. Nie mniej jednak lepiej jest to pominąć bo może to jedynie problemów przystworzyć.
2. Oczywiście, że zajmują zasoby (kod trzeba wczytać, sparsować, zinterpretować (skomplikować do bytecode'u) no i przechowywać go w pamięci). Skorzystanie z akceleratora (np. APC) pozwala wyeliminować pierwsze trzy kroki co daje aplikacją napisanym w PHP sporego kopa.
3. Optymalny? Pewnie nie. Ale takie pomiary są bardzo nierzetelne. Zdecydowanie lepiej testować wydajność aplikacji chociażby Apache Benchmarkiem.
4. Domyślam się że chodzi o wykorzystanie RAND() w klauzuli ORDER BY, tak? Generalnie to... to zależy. Jednak z reguły nie jest to specjalnym problemem w przypadku tabel do kilku tys. rekordów.
6.
  1. if (filemtime('./jakis/plik') < time() - 60 * 60 * 24) {
  2. // generujesz co potrzeba
  3.  
  4. $data = ...;
  5.  
  6. file_put_contents('./jakis/plik', $data);
  7. } else {
  8. $data = file_get_contents('./jakis/plik');
  9. }
Taifun
skorzystałem z prostego skryptu HYPERCACHER jako, że nie piszę obiektowo jest rewelacyjny smile.gif
ciekawskiii
Cytat(Crozin @ 28.04.2011, 16:21:13 ) *
1. Użycie "?>" nie wpływa na wydajność. Nie mniej jednak lepiej jest to pominąć bo może to jedynie problemów przystworzyć.

To moze napisz jakie z tego moga byc problemy bo sam zawsze zamykam w includowanych plikach i chetnie sie dowiem
Crozin
Czasami zdarza się, że po tym nieszczęsnym "?>" zaplącze się jakaś spacja czy dodatkowa nowa linia. Sprawi to problemy przy próbie wysłania nagłówków czy w przypadku gdy generowania treść musi być niezwykle precyzyjna (np. w przypadku generowania grafik).
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.