Article View: pl.comp.programming
Article #205490Re: jsp vs php
From: user
Date: Thu, 02 May 2013 03:11
Date: Thu, 02 May 2013 03:11
72 lines
4467 bytes
4467 bytes
On 01.05.2013 22:32, M.M. wrote:
>> Nie wiem na czym polega
>> spadek wydajności przy dużych serwisach, przecież nadal będzie się
>> składał z niewielkich części, małych plików PHP.
> Mnie martwi nie tyle spadek wydajności w dużych serwisach, co w popularnych.
Jak facebook sobie poradził, to ty też sobie poradzisz :)
>
> Załóżmy że mamy 4 godziny szczytowego obciążenia na dobę. Załóżmy że
> każdy użytkownik wyśle 50 zapytań w swojej sesji (nie licząc zapytań o
> obrazki, pliki html, csv, które podaje się bez żmudnych obliczeń i w
> dodatku można buforować po stronie przeglądarki i serwera). Przy 100
> użytkownikach w założonym okresie, mamy 3600s * 4 / 50 / 100 = 2.88s na
> jedno wygenerowanie strony. Gdy weźmiemy zwykły dysk (nie SSD) to mamy
> na wygenerowanie jednej strony limit około 150-200 nastawień głowicy.
>
> Wynika z tego że 3000 userów wymaga 30 jednostek równolegle przetwarzających
> jeśli uzyska się liniową skalowalność. W praktyce trudno uzyskać liniową
> skalowalność, więc może będzie trzeba 100 równoległych jednostek. Poza tym
> zapytania użytkowników nie rozłożą się równolegle w tych 4 godzinach, więc
> może 200, może 300.
Facebook jak dotarł do problemu spadku wydajności to zaczął tworzyć
rozszerzenia do PHP, które przecież mogą być natywne a dzięki temu
szybsze od kodu pod maszynę wirtualną. Czyli część kodu php można
zamienić na jedną linię kodu z biblioteki dołączanej. Zresztą są inne
rozwiązania, choćby facebookowe HipHop dla PHP.
>> bo tworzenie logiki na stringach
>> (np. link('Dupa', array('action' => 'maryni')) jest dla mnie
>> nieakceptowalne i bym poświęcił kupę czasu na zrobienie
>> staticów aby te stringi zastąpić deklaracyjnie :)
> Sorry ale tutaj coś nieźle pomyliłeś, do logiki są kontrolery, a podałeś
> przykład funkcji bibliotecznej.
Fakt, nie chodzi o logikę w sensie MVC, ale w tym konkretnie przypadku o
niedeklaratywny kod realizujący też jakiś rodzaj logiki (łączenie
elementu interfejsu z akcją).
>> Zresztą, im więcej warstw kodu umieszczam, tym mam gorszy dostęp do
>> warstw niższych a sporo robię też za pomocą jQuery i ajax.
> Nie wiem jak używasz określenia "warstwa kodu", bo jeśli używasz
> tego w standardowym znaczeniu, to warstwy tylko pomagają (no chyba
> że w mikro-projektach).
Cake uważam za jedną z tych warstw, które oddalają mnie od generowanego
HTMLa i tak jak pisałem, imo pomagać może, nie musi a w małych
jednoosobowych projektach może nawet przeszkadzać.
Chodzi też o to, że za pomocą Cake mogę utworzyć interfejs strony, która
zostanie pobrana raz, więc za pomocą JS mogę go wtedy już tylko w
niewielkim stopniu wygodnie modyfikować, aktualizować dane, ale... są
miejsca, gdzie muszę używać dużo JS a większość na stronie powstaje za
pomocą jQuery+ajax, aby zapewnić większą "responsywność" dla użytkownika
i strona może wyglądać tak:
<body>
...
<div id="#controlsContainer"></div>
...
<script>
...
deklaracje funkcji
...
wywołania funkcji tworzących (inicjujący) interfejs
w controlsContainer
...
wywołania funkcji inicjujących logikę na stronie,
podpięcie zdarzeń.
</script>
</body>
Nie widzę tu miejsca dla Cake, skoro strona serwerowa będzie głównie
odpowiadała za zwracanie JSONów.
Technical Details
Message-ID:
<klsle1$ogf$1@news.mm.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!news.task.gda.pl!news.mm.pl!.POSTED!not-for-mailReferences:
<cfa1e1b8-b40c-45e1-a091-7e7a1f53c751@googlegroups.com> <klqg29$o16$1@news.mm.pl> <029812f4-fc45-4e87-86d9-716b915ec3eb@googlegroups.com>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!news.task.gda.pl!news.mm.pl!.POSTED!not-for-mail From: user@domain.invalid Newsgroups: pl.comp.programming Subject: Re: jsp vs php Date: Thu, 02 May 2013 05:11:21 +0200 Organization: Multimedia Polska SA Lines: 73 Message-ID: <klsle1$ogf$1@news.mm.pl> References: <cfa1e1b8-b40c-45e1-a091-7e7a1f53c751@googlegroups.com> <klqg29$o16$1@news.mm.pl> <029812f4-fc45-4e87-86d9-716b915ec3eb@googlegroups.com> NNTP-Posting-Host: host-217-172-242-90.gdynia.mm.pl Mime-Version: 1.0 X-Trace: news.mm.pl 1367464193 25103 217.172.242.90 (2 May 2013 03:09:53 GMT) X-Complaints-To: abuse@multimedia.pl NNTP-Posting-Date: Thu, 2 May 2013 03:09:53 +0000 (UTC) User-Agent: Mozilla/5.0 (X11; Linux i686; rv:17.0) Gecko/20130404 Thunderbird/17.0.5 In-Reply-To: <029812f4-fc45-4e87-86d9-716b915ec3eb@googlegroups.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit