Temat: wydajność aplikacji internetowych

Na dniach zacznę projektować duży portal internetowy. Chciałbym się zapytać na co zwrócić największą uwagę, żeby aplikacja była jak najwydajniejsza i działała jak najszybciej? Jakich języków użyć i do czego oraz ogólne rady
Robert B.

Robert B. Specjalista, Polska
Telefonia Cyfrowa

Temat: wydajność aplikacji internetowych

Wszystko zależy od tego, jakie jest przeznaczenie portalu, co ma się na nim znaleźć. Bez tej wiedzy trudno polecić języki.

Uniwersalne zasady: optymalizacja :)
1. Dobrze zaprojektowana baza danych i przemyślane zapytania (pobieramy tylko tyle rekordów ile jest niezbędne).
2. Jeżeli zależy Ci na szybkości to jak najmniej elementów dynamicznych, przeważanych "w locie".
3. Przemyślany zoptymalizowany kod, poprawne i rozmyślne zarządzanie pamięcią.
4. Jak najmniej przeładowań, pobieramy tylko to co jest potrzebne (AJAX).

Pozdrawiam
Robert

Temat: wydajność aplikacji internetowych

Robert Baryła:
Wszystko zależy od tego, jakie jest przeznaczenie portalu, co ma się na nim znaleźć. Bez tej wiedzy trudno polecić języki.

najbardziej serwer będzie obciążony przez galerie zdjęć użytkowników, każdy będzie mógł dodać ich nie ograniczona ilość, wgrać filmik, muzyke
Reszta to standard artykuły, forum, newsy itp
Michał Stanowski

Michał Stanowski magik od php i
wordpress

Temat: wydajność aplikacji internetowych

Do tego dodałbym przemyślany cache, np. za pomocą memcached
Jakiś lżejszy od Apache serwer WWW, np. lighttpd
Ciągłe testy szybkości zapytań SQL i poszukiwanie najbardziej optymalnego. (nie poprzestawaj na jednym zapytaniu, tylko staraj się stworzyć kilka wersji zwracających te same dane i sprawdź które będzie najlepsze)

Dobrze wykorzystać jakiś framework (tylko żeby nie był zbyt wolny) który ułatwi późniejsze zmiany, refactoring i optymalizację.
Robert B.

Robert B. Specjalista, Polska
Telefonia Cyfrowa

Temat: wydajność aplikacji internetowych

Wojciech Potocki:
Robert Baryła:
Wszystko zależy od tego, jakie jest przeznaczenie portalu, co ma się na nim znaleźć. Bez tej wiedzy trudno polecić języki.

najbardziej serwer będzie obciążony przez galerie zdjęć użytkowników, każdy będzie mógł dodać ich nie ograniczona ilość, wgrać filmik, muzyke
Reszta to standard artykuły, forum, newsy itp

Nieograniczona ilość, hmm jesteś pewien?
Zatem zadbaj o maszynę. Polecam naprawdę silny dedykowany serwer z jak dużą przepustowością i przestrzenią dyskową.
Czy oprócz nieograniczonej ilości będzie nieograniczona wielkość plików?
Projekt wygląda na multimedialny, zastanów się nad media serwerem (http://www.adobe.com/products/flashmediainteractive/)

Temat: wydajność aplikacji internetowych

Michał Stanowski:
Do tego dodałbym przemyślany cache, np. za pomocą memcached

Dobrze wykorzystać jakiś framework (tylko żeby nie był zbyt wolny) który ułatwi późniejsze zmiany, refactoring i optymalizację.

Jakiś proponujesz? Który jest w miare szybki ale zarazem bezpieczny?
Robert Baryła:
Nieograniczona ilość, hmm jesteś pewien?

Ilość zdjęć musi być nieograniczona
Muzyka tutaj źle się wyraziłem każdy może dodać 1-2 mp3
Filmy tutaj chyba wprowadze jakieś ograniczenie w ilości ale trzeba założyć, że każdy może mieć max 10 filmików własnych
Robert Baryła:
Czy oprócz nieograniczonej ilości będzie nieograniczona wielkość >plików?

Odnośnie fotek to raczej nie bo muszą być wysokiej jakości
Muzyka pewnie tak (żeby weszły dwie mp3)
Filmy hmm tutaj będzie trzeba przemyśleć:)

A może zrobić zeby filmy trzeba było wrzucać na youtube a u mnie tylko poprzez [embed] ?Wojciech Potocki edytował(a) ten post dnia 02.07.08 o godzinie 14:40

konto usunięte

Temat: wydajność aplikacji internetowych

Wojciech Potocki:
najbardziej serwer będzie obciążony przez galerie zdjęć użytkowników, każdy będzie mógł dodać ich nie ograniczona ilość, wgrać filmik, muzyke
Reszta to standard artykuły, forum, newsy itp

Szybkość portalu można określić jako
1) czas przetwarzania strony (tutaj mają znaczenie frameworki, języki, bazy itepe)
2) czas załadowania strony / time to last byte.

Na temat (1) można napisać niejeden doktorat a i tak nie dojdzie się do innych wniosków niż "wszystko zależy od tego JAK to jest napisane a nie w CZYM".

ad (2) - czas załadowania całej strony jest bardziej odczuwalny dla użytkownika. Szczególnie przy dużej ilości contentu muiltimedialnego. Warto rozważyć osobny serwer/IP tylko do hostingu statycznego kontentu i zoptymalizować stronę tak, żeby obrazki i JS ładowała dynamicznym JS po załadowaniu całej strony. Użytkownik ma wtedy lepsze "odczucie" szybkości strony.

Ogólnie temat rzeka!
Dariusz Siedlecki

Dariusz Siedlecki Rockstar Frontend
Developer

Temat: wydajność aplikacji internetowych

Wojciech Potocki:
A może zrobić zeby filmy trzeba było wrzucać na youtube a u mnie tylko poprzez [embed] ?Wojciech Potocki edytował(a) ten post dnia 02.07.08 o godzinie 14:40
Przejrzyj API YouTube, może Cię zainteresuje.

http://www.youtube.com/dev
Michał Stanowski

Michał Stanowski magik od php i
wordpress

Temat: wydajność aplikacji internetowych

Wojciech Potocki:
Michał Stanowski:
Do tego dodałbym przemyślany cache, np. za pomocą memcached

Dobrze wykorzystać jakiś framework (tylko żeby nie był zbyt wolny) który ułatwi późniejsze zmiany, refactoring i optymalizację.

Jakiś proponujesz? Który jest w miare szybki ale zarazem bezpieczny?


Wszystkie popularne są bezpieczne. Mówię tu o rozwiązaniach takich jak powiedzmy Symfony, Zend Framework, Cake, ogólnie powstaje tego co raz więcej.

Ja osobiście robiłbym to w Symfony. Jednak jest pewne niebezpieczeństwo. Jeśli nieprzemyślanie wykorzysta się różne jego możliwości to wyjdzie z tego wolny sajt. Symfony na prawdę ułatwia i przyśpiesza robienie strony ale ma to właśnie przełożenie na ilość i zagmatwanie kodu który nie należy do najszybszych.

Jednak przemyślany cache, zrezygnowanie z ORM w frontendzie, przenesienie logiki na bazę i inne zabiegi potrafią zrównać go do konkurencji.
Maciej W.

Maciej W. a czy ty masz swój
ręcznik?...

Temat: wydajność aplikacji internetowych

Wojciech Potocki:
Na dniach zacznę projektować

A może zrobić zeby
>
Czy Ty to sam projektujesz?
Wydaje mi się, że jesteś jeszcze w lesie z tym co ma być... zanim będziesz myślał o sprzęcie i sposonie działania, pomyśl o dokumentacji
Michał Ławicki

Michał Ławicki dostawca zadowolenia

Temat: wydajność aplikacji internetowych

http://talen.jogger.pl/kategoria/duze-portale/

konto usunięte

Temat: wydajność aplikacji internetowych

Michał Stanowski:
Ja osobiście robiłbym to w Symfony. Jednak jest pewne niebezpieczeństwo. Jeśli nieprzemyślanie wykorzysta się różne jego możliwości to wyjdzie z tego wolny sajt. Symfony na prawdę ułatwia i przyśpiesza robienie strony ale ma to właśnie przełożenie na ilość i zagmatwanie kodu który nie należy do najszybszych.
Jednak przemyślany cache, zrezygnowanie z ORM w frontendzie, przenesienie logiki na bazę i inne zabiegi potrafią zrównać go do konkurencji.

mógłbyś to szerzej opisać? Czego najbardziej unikasz w swoich projektach [jeśli korzystasz z symfony]. Co do ORM'a, w modułach piszesz surowe zapytania czy masz jakąś własną bibliotekę
Michał Stanowski

Michał Stanowski magik od php i
wordpress

Temat: wydajność aplikacji internetowych

z ORMa korzystam w backendzie. Podobnie z admin-generatora itp ficzerów.

Jeśli zaś o frontend chodzi, to wykorzystuje suche zapytania SQL, puszczane przez PDO lub przez Propela. Ew. jakieś inserty/update zrealizuje jeszcze przez ORM, ale bardziej skomplikowanych SELECT unikam.

W przyszłości chcę poduczyć się ficzerów z mysql 5 i stosować widoki, procedury itd, aby maksymalnie odciążyć frontend
Alan Gabriel B.

Alan Gabriel B. Software Engineer,
IFX

Temat: wydajność aplikacji internetowych

Przy mega-optymalizacji liczy się nawet system plików :) A niekiedy trzeba napisać własne oprogramowanie serwerowe (bodajże n-k sobie takie sprawiła)

Więc masz ogromne pole do popisu.

P.S. Jak dla mnie 2 najważniejsze rzeczy zostały powiedziane:
1. Optymalizacja zapytań.
2. Osobny serwer (silniejszy) na multimedia.
Dodam jeszcze:
3. cache!



Wyślij zaproszenie do