Wpis z mikrobloga

#php #symfony #symfony2 #kohana #webdev #programowanie #pytanie

kolejne pytanie dziś, cały dzień przed komputerem, czytam i czytam i niewiele z tego wynika

jak to jest z tym cache'owaniem (będę pisał keszowaniem, trochę to bardziej naturalne) w symfony2? mam kilka pytań:

1

nie mam włączonego APC. pierwsze ładowanie strony w sf2 trwa 500 ms, a każde kolejne 30-60ms. dlaczego?

2

załóżmy, że chcę używać w skrypcie APC. czy będę musiał coś zmieniać w kodzie (jak w przypadku memcache) czy po prostu wystarczy to włączyć i co jakiś czas czyścić cache?

3

czy APC potrzebuje mieć coś specjalnego (np. flagi kompilacji php) czy można tego używać na każdym serwerze? jeśli nie, to na jakim da się tego używać, co jest wymagane (mam obecnie serwer na proserwer.pl, pewnie nie zadziała?)
  • 21
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@DESZCZE:

Pierwsze ładowanie strony w sf2 trwa 500 ms, a każde kolejne 30-60ms. dlaczego?


Przy pierwszym uruchomieniu ładowane jest wszystko od zera i wrzucane do kesza. W ten sposób kolejne żądania ładują rzeczy z kesza i są
  • Odpowiedz
czy APC potrzebuje mieć coś specjalnego (np. flagi kompilacji php) czy można tego używać na każdym serwerze? jeśli nie, to na jakim da się tego używać, co jest wymagane (mam obecnie serwer na proserwer.pl, pewnie nie zadziała?)


@MacDada: na hostingu współdzielonym raczej żadnego opcache nie uświadczysz, wynika to z tego że opcache używa shared memory (współdzieli cache na wszystkie procesy php), można to ominąć tworząc procesy php dla każdego usera
  • Odpowiedz
Przy pierwszym uruchomieniu ładowane jest wszystko od zera i wrzucane do kesza. W ten sposób kolejne żądania ładują rzeczy z kesza i są szybsze.


@MacDada: o tym wiem, ale skoro nie mam żadnego włączonego...?

1. Ładuje się klasa, parsuje, a jej opcode jest keszowany. W ten sposób w kolejnych wywołaniach klasa leci z pamięci. Jak zmienisz coś w klasie, musisz zrzucić cały kesz APC. Symfony nie ma nic do tego, tak
  • Odpowiedz
btw. nie inwestował bym za dużo czasu w ogarnięcie APC, z tego względu że nie jest już rozwijany, ostatnia wersja z września 2012 jest


@Jaslanin: zabiłeś mnie tym, tyle czytałem że w php6 ma być wbudowane apc ale nie patrzyłem na daty... cóż, chyba nie ma sensu uczyć się czegoś co się później nie przyda?

jak w takim razie mogę przyspieszyć stronę na współdzielonym serwerze?
  • Odpowiedz
@DESZCZE:

o tym wiem [o keszach symfonowych], ale skoro nie mam żadnego włączonego...?


Symfony keszuje sobie sparsowaną konfigurację, szablony twiga, obiekty proxy Doctrine'a, itp. Zajrzyj do katalogu
  • Odpowiedz
@DESZCZE: Ogólnie mam wrażenie, że chyba dopiero się uczysz PHP i Symfony. Moja propozycja jest taka:

1. Nie przejmuj się wydajnością, optymalizacją, itp. Na to będzie czas później. Na razie dobrze poznaj narzędzia z których chcesz korzystać.

2. Zainstaluj u siebie na komputerze środowisko developerskie: klasyczny (x)AMP: system + apache + mysql +
  • Odpowiedz
Symfony ogólnie nie nadaje się na hostingi współdzielone bez shella. W teorii da się, ale znacznie utrudnia to deploy, zarządzanie, itp.


Pytanie: chcesz tylko potestować czy faktycznie postawić stronę z Symfony?


* Jeśli tylko potestować, pouczyć się, itp – nie potrzebujesz hostingu – rób to lokalnie na swojej maszynie.
  • Odpowiedz
Ogólnie mam wrażenie, że chyba dopiero się uczysz PHP i Symfony


@MacDada: trafiłeś, od czterech dni

1. Nie przejmuj się wydajnością, optymalizacją, itp. Na to będzie czas później. Na razie dobrze poznaj narzędzia z których chcesz
  • Odpowiedz
@DESZCZE:

po prostu nie chcę używać kohany do tej strony, bo to już stara technologia i nikt tego nie używa, zamiast tego przyzwyczajać się do nowoczesnego symfony


To proponuję http://silex.sensiolabs.org/ – microframework od twórcy Symfony. Idea jest odwrotna od „dużego”
  • Odpowiedz
@DESZCZE:

już raz się nie przejmowałem wydajnością przy pracy z KO3. po tym jaki bajzel się zrobił postanowiłem od początku robić wszystko jak należy, a nie jak wcześniej "aby działało"


Najpierw piszesz, żeby działało. Potem piszesz, żeby było „ładnie” (refactoring). Potem szukasz, co działa mało wydajnie i dopiero tylko te pojedyncze elementy optymalizujesz.

http://c2.com/cgi/wiki?PrematureOptimization
  • Odpowiedz
@MacDada: a są jakieś ogłoszenia typu "szukamy programisty php wymagania znajomość frameworka silex"? :)

I ta sama rada: przeczytaj całą dokumentację i dopiero bierz się za pisanie ;)


@MacDada: na mnie to raczej nie działa. zawsze przed nauką czegoś nowego owszem, przeglądam dokumentację, ale nie czytam od deski do deski, bo nic bym z tego nie zrozumiał. po prostu zaczynam coś pisać, a w miarę jak coś zmieniam i
  • Odpowiedz
@DESZCZE: RTFM – wszystko to jest w dokumentacji.

Mogę Ci wytłumaczyć czym jest reverse proxy, ale to wymaga wiedzy na temat protokołu HTTP. O nagłówki HTTP też później będziesz pytał? Czy może jednak czas siąść i się po prostu pouczyć?
  • Odpowiedz