Cóż, Facebook przeszedł WIELE wielu zmian i pierwotnie nie był zaprojektowany jako wydajny. Został zaprojektowany, aby wykonywać swoją pracę. Nie mam absolutnie pojęcia, jak wygląda kod i prawdopodobnie nie znajdziesz na jego temat wielu informacji (z oczywistych względów bezpieczeństwa i praw autorskich), ale spójrz tylko na API. Spójrz, jak często się to zmienia i ile z tego nie działa już prawidłowo lub w ogóle.
Myślę, że największym asem w rękawie jest Hiphop.
http://developers.facebook.com/blog/post/358
Możesz samodzielnie korzystać z HipHop:
https://github.com/facebook/hiphop-php/wiki
Ale jeśli o mnie chodzi, jest to bardzo ambitne i prawdopodobnie marnujące czas zadanie. Hiphop obsługuje tylko tyle, że nie może po prostu przekonwertować wszystkiego na C ++. Więc co to nam mówi? Cóż, mówi nam, że Facebook NIE w pełni wykorzystuje język PHP. Nie używa najnowszej wersji 5.3 i jestem gotów się założyć, że wciąż jest wiele elementów kompatybilnych z PHP 4. W przeciwnym razie nie mogliby używać HipHop. HipHop TO DOBRY POMYSŁ i musi się rozwijać i rozszerzać, ale w obecnym stanie nie jest zbyt przydatny dla wielu osób, które tworzą NOWE aplikacje PHP.
Istnieje również PHP do JAVA poprzez rzeczy takie jak Resin / Quercus. Ponownie, nie obsługuje wszystkiego ...
Inną rzeczą, na którą należy zwrócić uwagę, jest to, że jeśli używasz niestandardowego modułu PHP, nie będziesz w stanie przekonwertować tego kodu na C ++ lub Javę. Jednak ... Przyjrzyjmy się modułom PHP. Są skompilowane w C ++. Więc jeśli możesz zbudować moduły PHP, które robią różne rzeczy (takie jak parsowanie XML itp.), To w zasadzie (bez niektórych interakcji) pracujesz z tą samą prędkością. Oczywiście nie możesz po prostu stworzyć modułu PHP dla każdej możliwej potrzeby i całej aplikacji, ponieważ musiałbyś ponownie skompilować, a kodowanie byłoby znacznie trudniejsze itp.
Jednak ... Istnieje kilka przydatnych modułów PHP, które mogą pomóc w przypadku problemów z szybkością. Chociaż pod koniec dnia mamy tę niesamowitą rzecz zwaną „chmurą” i dzięki niej możemy skalować nasze aplikacje (w tym PHP), więc nie ma to już większego znaczenia. Sprzęt staje się coraz tańszy. Mówiąc o tym, Amazon właśnie obniżył swoje ceny.
Tak długo, jak kodujesz swoją aplikację PHP wokół idei, że będzie ona wymagała jednodniowej skali ... Wtedy myślę, że wszystko w porządku i nie jestem pewien, czy nawet spojrzałbym na Facebooka i co zrobili, ponieważ kiedy zrobili to, to był zupełnie inny świat, a teraz próbują utrzymać tę infrastrukturę i ją utrzymać ... Cóż, dostajesz rzeczy takie jak HipHop.
Jak HipHop może ci pomóc? Nie będzie. Nie może. Zaczynasz od nowa, możesz użyć PHP 5.3. Gorąco polecam przyjrzenie się frameworkom PHP 5.3 i wszystkim nowym korzyściom, które PHP 5.3 wnosi do tabeli wraz z bibliotekami SPL, a także zastanowienie się nad bazą danych. Najprawdopodobniej udostępniasz zawartość z bazy danych, więc sprawdź MongoDB i inne typy baz danych, które nie zawierają schematów i są zorientowane na dokumenty. Są znacznie szybsze i lepsze w przypadku większości „popularnych” witryn / aplikacji.
Spójrz na NOWE firmy, takie jak Foursquare i Smugmug oraz kilka innych firm, które wykorzystują NOWĄ technologię i JAK jej używają. Ponieważ Facebook odnosi sukcesy, szczerze nie patrzę na nich pod kątem „jak” zbudować wydajną witrynę / aplikację. Nie mówię, że nie mają tam bardzo (bardzo) utalentowanych ludzi, którzy tam pracują i twórczo rozwiązują (ich) problemy ... Nie mówię też, że Facebook nie jest ogólnie dobrym pomysłem i że nie jest sukces i że nie powinieneś czerpać z niego pomysłów ... Mówię tylko, że gdybyś mógł zobaczyć cały ich kod źródłowy, prawdopodobnie nie skorzystałbyś na tym.