![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 375 Pomógł: 20 Dołączył: 28.07.2006 Ostrzeżenie: (0%) ![]() ![]() |
W internecie na wielu stronach polecają używanie buforowania wyjścia. Może przyspieszyć ładowanie się stron. Niektórzy jednak twierdzą, że buforowanie wyjścia jest wolne. Fakt - zużywa więcej RAM-u - choć znacząco?
Jak jest w rzeczywistości? Buforowanie wyjścia może się przydać do np. do tworzenia plików cache. Jednak głównym problemem są moduły w CMS-ie. Użycie OB pozwoliłoby potem na wstawienie treści wygenerowanej przez moduł do szablonu, umożliwiając również dostęp do sekcji <head>, <title>, cookies, itp. bez potrzeby dołączania dodatkowych plików. Co jednak o tym myślicie? Ważna jest optymalizacja, bowiem skrypt być szybki również na darmowych serwerach. ![]() -------------------- „Jesteśmy różni, pochodzimy z różnych stron Polski, mamy różne zainteresowania, ale łączy nas jeden cel. Cel ten to Ojczyna, dla której chcemy żyć i pracować.” Roman Dmowski
|
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 28.12.2005 Ostrzeżenie: (0%) ![]() ![]() |
nie jestem przekonany czy buforowanie spowoduje znaczącą różnice, głównie dlatego że wszystkie, czy też znacząca większość informacji podczas wykonywania strony jest w pamięci. Z tego co wiem o php to czyszczenie pamięci w trakcie występuje tylko w przypadku obiektów jeśli się straci do nich dowiązanie a reszty zmiennych na polecenie programisty. W zależności od ustawień serwera dane i tak są buforowane przed wysłaniem do przeglądarki a w części przypadków są buforowane aż do wykonania całego skryptu.
Oczywiście wszystko można napisać tak aby usmażyć procesor |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 375 Pomógł: 20 Dołączył: 28.07.2006 Ostrzeżenie: (0%) ![]() ![]() |
Przeprowadziłem przed chwilą test programem ab.exe, ale na małej ilości danych (tylko informacja). Może później zrobię inny - z dużym artykułem i komentarzami. Użycie OB nieznacznie spowolniło skrypt (różnica 1-2 ms. w 1 wywołaniu). Przykładowo ilość zapytań na sekundę - bez OB: 17.28, z OB: 17.09 (były też bardziej rozbieżne wyniki, np. 15.51, 17.58). Zanim wstawię dane z bufora do layoutu, zapisuję je do zmiennej (bo wcześniej trzeba bufor wyłączyć - nagłówka layoutu ani nawigacji nie buforujemy). Może przy częstym wywoływaniu ECHO rezultat byłby całkiem inny.
Tak jak pisałem - chcę, aby moduły były w stanie zmienić zawartość tagu <title> i <head>. Trzeba więc dołączać je przed znacznikiem <html>. Jednak to, co wygenerują, musi znaleźć się w <body> w szablonie głównym (layoucie). Gdyby każdy moduł używał tylko 1 szablonu, nie byłoby problemu. Są sytuacje, że trzeba wyświetlić tylko komunikat. Niektóre moduły składają się z wielu części (np. PW) i dołączają 2 szablony (część stała, np. foldery + zmienna, np. lista wiadomości). Buforowanie wyjścia rozwiązuje te problemy. Na ##php twierdzą, że jest wolne, gdyż używa dużo RAM-u. Rzeczywiście - maksymalne zużycie trochę (a może znacznie) wzrasta. Czy ktoś testował wydajność i pamięciożerność buforowania wyjścia i mógłby się podzielić wynikami? Co lepiej wybrać? Może abstrakcja wyglądu (system szablonów?) lub modułów (z potrzebą definiowania globalnych: $cfg, $lang, $user, $db...) nie okaże się wcale wydajniejsza? -------------------- „Jesteśmy różni, pochodzimy z różnych stron Polski, mamy różne zainteresowania, ale łączy nas jeden cel. Cel ten to Ojczyna, dla której chcemy żyć i pracować.” Roman Dmowski
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 470 Pomógł: 75 Dołączył: 21.09.2005 Skąd: że znowu Ostrzeżenie: (0%) ![]() ![]() |
buforować:tak
jak: z głową do wszystkiego trzeba mieć umiar jeśli utworzysz tysiąc buforół - to masz 100% że to będzi chodziło jak krew z nosa -------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.07.2025 - 17:46 |