-
Data: 2013-05-02 05:11:21
Temat: Re: jsp vs php
Od: u...@d...invalid szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]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.
Następne wpisy z tego wątku
- 02.05.13 05:28 u...@d...invalid
- 02.05.13 08:55 Ghost
- 02.05.13 13:06 M.M.
- 02.05.13 13:21 M.M.
- 02.05.13 23:45 Lopez
- 03.05.13 03:56 M.M.
- 03.05.13 07:27 Ghost
- 05.05.13 06:32 u...@d...invalid
- 05.05.13 22:06 M.M.
- 06.05.13 00:06 Lopez
- 06.05.13 00:26 M.M.
- 06.05.13 00:39 firr kenobi
- 06.05.13 01:02 M.M.
- 06.05.13 08:33 R.e.m.e.K
- 06.05.13 08:41 Ghost
Najnowsze wątki z tej grupy
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
Najnowsze wątki
- 2024-12-04 Warszawa => Analityk w dziale Trade Development (doświadczenie z Powe
- 2024-12-04 Warszawa => Full Stack web developer (obszar .Net Core, Angular6+) <=
- 2024-12-04 Warszawa => Software .Net Developer <=
- 2024-12-04 Re: Zadrży rząd Tuski przed "zniesławianym"/zniesławianym "ruskim szpiegiem"? [Oleinychenko wydalony]
- 2024-12-04 Warszawa => Architekt rozwiązań (doświadczenie w obszarze Java, AWS
- 2024-12-04 Czy policjantów należy ROZBROIĆ?
- 2024-12-03 Tymoteusz Sz.
- 2024-12-03 Re: Prezydent ułaskawia: Prezydent USA Biden (D) ułaskawia syna własnego
- 2024-12-03 Re: Tani dodatkowy sim do smartwacha
- 2024-12-03 Wróblewo => Analityk finansowy <=
- 2024-12-03 Praktyczny test GPS...
- 2024-12-02 Tak się sprzedają elektryczne woldzwageny ;-)
- 2024-12-02 Akumulator do Hyundai
- 2024-12-02 Olsztyn => Sales Specialist <=
- 2024-12-02 Poznań => Technical Artist <=