HipHop for PHP: Facebook uwalnia translator PHP – C++
O tym, że Facebook zamierza coś zrobić z bibliotekami uruchomieniowymi PHP, wiadomo było już od kilka tygodni – po Sieci krążył wywiad z anonimowym pracownikiem społecznościowego giganta, który donosił, że trwają prace nad kompilatorem dla najpopularniejszego języka programowania aplikacji webowych. Dzisiaj Facebook poinformował o projekcie HipHop, dzięki któremu udało się zmniejszyć obciążenie serwerów Facebooka o około 50%.
W opublikowanym na deweloperskim blogu Facebooka wpisie, pracujący tam inżynier Haiping Zhao stwierdził, że szybki rozwój Facebooka przez ostatnie sześć lat był właśnie możliwy dzięki prostocie PHP – języka, którego „łatwo się naczyć, łatwo w nim pisać, łatwo go czytać i łatwo debugować”.
Trudne jest skalowanie aplikacji w PHP
Jednak zalety PHP gdzieś się kończą – język ten nie jest w stanie zaoferować takiej wydajności aplikacji, jak np. aplikacje pisane w Javie czy językach .NET. Efektem ubocznym stosowania przez Facebooka PHP była nieustannie rosnąca liczba serwerów webowych, generująca spory narzut na działanie serwisu. Coraz trudniej było skalować infrastrukturę, gdy liczba odsłon zaczęła przekraczać 400 mld miesięcznie.
Jednym z rozwiązań tego problemu było przepisywanie najbardziej złożonych części aplikacji w PHP w C++, jako PHP Extensions. PHP stawał się językiem pomostowym pomiędzy widokiem aplikacji a jej biznesową logiką. Efekty były dobre – ale drastycznie zmniejszały pulę inżynierów potrafiącygch pracować nad takim projektem. Musieli oni nie tylko radzić sobie z C++ ale też dobrze rozumieć interfejs programowania Zenda. Dla Facebooka, w którym pracuje raptem kilkuset programistów, był to spory problem.
Rozwiązaniem jest projekt HipHop for PHP. W praktyce nie jest to kompilator PHP, tak jak głosiła plotka, ale translator, który dokonuje konwersji kodu PHP do wysoce zoptymalizowanego C++. Uzyskany tak kod jest kompilowany za pomocą opensource'owego g++. Całość składa się z translatora, nowej implementacji bibliotek uruchomieniowych PHP i napisanych na nowo PHP Extensions, które wykorzystują teraz optymalizację wydajności.
HipHop pozwala inżynierom Facebooka na na pisanie logiki, która składa widok strony prezentowanej użytkownikowi w PHP z danych dostarczonych przez backendowe usługi, napisane w językach takich jak C++, Java, Python czy Erlang.
«poprzednia 1 2 następna »
Komentarze
Aby dodać komentarz, musisz podać swój nick, treść komentarza oraz poprawnie przepisać oba słowa z obrazka
(słowa muszą być rozdzielone spacją).
W treści komentarza można używać języka formatowania BBcode.
Popularne
Nazwa padła ofiarą szantażystów, inni polscy hosterzy też zagrożeni?
22
Darmowy Internet od Aero2. Jak go zdobyć i jakie są prawdziwe koszta? Instrukcja krok po kroku
11
Programowanie w środowisku Android – wprowadzenie do projektowania aplikacji dla urządzeń mobilnych
17
Premiera Diablo 3 wzbudziła dyskusję na temat gier, które zawsze chcą być online
19
Nowy problem z Windows 8: bootuje się za szybko
10
Amerykańscy rodzice straszeni „e-narkotykami” dostępnymi w Sieci
21
Anonymous upubliczniają 1,7 GB danych wykradzionych Departamentowi Sprawiedliwości USA
12
Blueseed: libertariańska sztuczna wyspa przyciągnęła już ponad sto startupów z całego świata
8
Rewolucja w Firefoksie, nowa łatka czterokrotnie ograniczyła zużycie pamięci
20
Darmowy Internet od Aero2. Jak go zdobyć i jakie są prawdziwe koszta? Instrukcja krok po kroku
11
CVDazzle: makijaż jest w stanie pokonać automatyczne systemy ulicznego monitoringu
3
Programowanie w środowisku Android – wprowadzenie do projektowania aplikacji dla urządzeń mobilnych
17
Ubuntu 12.04 LTS już dostępny: stabilna dystrybucja na następne pięć lat?
28
Zostań webmasterem polskiego rządu, zarobisz na komfortowe życie dla siebie i swojej rodziny
33
Społeczność
xyz @bartez® : Uważasz, że Apple nie ogranicza programistów? buahahaha
anga star za droga ludzie wy myślicie!?Jestem 4 klasistką rodzice się nigdy nie...
Jan Zwyczajnych filmów tak kręcić się nie da co najwyżej krótkie scenki jak w...
piotrek____ @asdfgh - yup, też tak sądzę.
Tak jak wtedy ten przeciek o żołnierzu...
gonzales Javowcy pozdrawiają dotnetowców xD
kaziks Galaxy S II - u mnie po aktualizacji Firefox działa strasznie zacina się...
Doniek Szkoda że strona z demo nie działa - non stop się przeładowuje
- Najdmen.pl: Konta www z wyłączonym licznikiem transferu od IONIC.pl (1)
- 2BE.PL: [Oferta] Promocja jak złoto w 2BE.PL (1)
- gardius: Dobra hurtownia sportowa (1)
- gardius: Tanie książki gdzie warto kupować? (1)
- Najdmen.pl: PROMOCJA, 500 DOMEN .EU ZA 1 PLN NETTO ! (1)
- VMLine: [Oferta] Serwery VPS Xen-HVM/OpenVZ z darmową administracją (2)
- Marek: Generowanie PDFa (2)
Polecane książki
Praca
Czytaj Webhosting
Chcesz być na bieżąco z naszymi informacjami? Zapisz się na Newsletter.
Zarejestruj domenę
Sprawdź dostępność swojej domeny:
| .pl: | 0 zł | .com: | 19.90 zł | |
|---|---|---|---|---|
| .com.pl: | 0 zł | .eu: | 19.90 zł |









#1 Ris 2010-02-02 22:13:23 0
IP: 91.94.113.[...] Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.7) Gecko/20100106 Ubuntu/9.10 (karmic) Firefox/3.5.7
#2 awattar - idiota 2010-02-03 00:31:29 0
IP: 84.10.244.[...] Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.0.249.78 Safari/532.5
#3 Jan 2010-02-03 07:30:06 0
IP: 89.75.102.[...] Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.7) Gecko/20100106 Ubuntu/9.10 (karmic) Firefox/3.5.7
#4 steve® 2010-02-03 10:26:05 0
IP: 62.129.252.[...] Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_2; en-us) AppleWebKit/531.21.8 (KHTML, like Gecko) Version/4.0.4 Safari/531.21.10
#5 szuki® 2010-02-03 10:37:20 0
IP: 89.171.198.[...] Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/532.8 (KHTML, like Gecko) Chrome/4.0.302.2 Safari/532.8
#6 Mr. M 2010-02-03 11:43:05 0
IP: 195.138.211.[...] Mozilla/5.0 (X11; U; Linux x86_64; pl-PL; rv:1.9.1.7) Gecko/20100106 Ubuntu/9.10 (karmic) Firefox/3.5.7
#7 Sceptyk 2010-02-03 12:28:37 0
IP: 89.72.37.[...] Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/532.9 (KHTML, like Gecko) Chrome/5.0.307.1 Safari/532.9
#8 pako® 2010-02-03 14:18:48 0
IP: 88.220.181.[...] Mozilla/5.0 (X11; U; Linux i686; pl; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7
#9 omc mgr 2010-02-03 14:39:55 0
IP: 164.4.17.[...] Opera/9.80 (Windows NT 5.1; U; pl) Presto/2.2.15 Version/10.00
#10 c@c.c 2010-02-03 15:03:05 0
IP: 80.229.34.[...] Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.0.249.78 Safari/532.5
#11 Kocurro.pl 2010-02-03 17:27:39 0
IP: 212.191.78.[...] Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.0.249.78 Safari/532.5
#12 gluth 2010-02-03 22:51:16 0
IP: 88.156.161.[...] Mozilla/5.0 (X11; U; Linux x86_64; pl-PL; rv:1.9.1.7) Gecko/20100106 Ubuntu/9.10 (karmic) Firefox/3.5.7
#13 hooker 2010-02-04 08:50:18 0
IP: 79.189.81.[...] Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.7) Gecko/20100106 Ubuntu/9.10 (karmic) Firefox/3.5.7
#14 dAREuS® 2010-02-04 08:59:02 0
IP: 188.121.11.[...] Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/532.8 (KHTML, like Gecko) Iron/4.0.275.2 Chrome/4.0.275.2 Safari/532.8
#15 hooker 2010-02-04 09:54:04 0
IP: 79.189.81.[...] Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.7) Gecko/20100106 Ubuntu/9.10 (karmic) Firefox/3.5.7
#16 dAREuS® 2010-02-04 10:01:16 0
IP: 188.121.11.[...] Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/532.8 (KHTML, like Gecko) Iron/4.0.275.2 Chrome/4.0.275.2 Safari/532.8
#17 lollercoaster 2010-02-04 10:10:30 0
IP: 213.192.88.[...] Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.0.17) Gecko/2010010605 Ubuntu/8.10 (intrepid) Firefox/3.0.17 GTB6
#18 dAREuS® 2010-02-04 10:22:53 0
IP: 188.121.11.[...] Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/532.8 (KHTML, like Gecko) Iron/4.0.275.2 Chrome/4.0.275.2 Safari/532.8
#19 eimi® 2010-02-04 10:39:18 0
IP: 83.10.188.[...] Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2) Gecko/20100114 Firefox/3.6
#20 hooker 2010-02-04 10:52:47 0
IP: 79.189.81.[...] Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.7) Gecko/20100106 Ubuntu/9.10 (karmic) Firefox/3.5.7
#21 reealista 2010-02-04 11:00:50 0
IP: 89.73.63.[...] Mozilla/5.0 (Windows; U; Windows NT 6.1; pl; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7
#22 slawek22 2010-02-04 11:09:01 0
IP: 83.4.50.[...] Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.0.249.78 Safari/532.5
#23 Sceptyk 2010-02-04 11:45:37 0
IP: 89.72.37.[...] Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/532.9 (KHTML, like Gecko) Chrome/5.0.307.1 Safari/532.9
#24 slawek22 2010-02-04 12:54:46 0
IP: 83.4.50.[...] Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.0.249.78 Safari/532.5
#25 AgBorkowski 2010-02-04 13:26:51 0
IP: 79.184.79.[...] Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.8.1.16) Gecko/20080702 Firefox/2.0.0.17 MEGAUPLOAD 2.0
#26 @eimi® 2010-02-04 15:00:48 0
IP: 83.24.228.[...] Mozilla/5.0 (Windows; U; Windows NT 6.0; pl; rv:1.9.2) Gecko/20100115 Firefox/3.6
#27 Kocurro.pl 2010-02-04 15:22:55 0
IP: 212.191.78.[...] Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.0.249.78 Safari/532.5
#28 invictus 2010-02-04 16:09:29 0
IP: 80.51.57.[...] Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; GTB6.3; SLCC1; .NET CLR 2.0.50727; .NET CLR 1.1.4322; .NET CLR 3.5.30729; .NET CLR 3.0.30618)
#29 slawek22 2010-02-04 17:46:07 0
IP: 83.4.50.[...] Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.0.249.78 Safari/532.5
#30 emka 2010-02-04 21:40:31 0
IP: 77.242.232.[...] Opera/9.80 (Windows NT 5.1; U; pl) Presto/2.2.15 Version/10.20
#31 KS JHJ 2010-02-04 23:14:56 0
IP: 77.236.9.[...] Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.2pre) Gecko/20100130 Ubuntu/9.10 (karmic) Namoroka/3.6.2pre
#32 Jas Wedrowniczek 2010-02-05 00:27:43 0
IP: 87.207.25.[...] Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.2) Gecko/20100115 Firefox/3.6
#33 slawek22 2010-02-05 15:24:03 0
IP: 83.29.63.[...] Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.0.249.78 Safari/532.5
#34 Loku 2010-02-10 21:45:54 0
IP: 194.146.217.[...] Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.2) Gecko/20100115 Firefox/3.6
#35 Keorelimonetyks 2010-02-15 10:46:34 0
IP: 79.190.215.[...] Opera/9.80 (Windows NT 5.2; U; pl) Presto/2.2.15 Version/10.10
#36 Frędzel 2010-10-12 13:26:28 0
IP: 79.189.151.[...] Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.9) Gecko/20100909 Firefox/3.6.9
#37 pepe 2010-10-23 16:34:04 0
IP: 86.63.152.[...] Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.2.11) Gecko/20101012 Firefox/3.6.11 ( .NET CLR 3.5.30729)
#38 poweruser 2011-04-01 10:10:23 0
IP: 212.76.32.[...] Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.2.16) Gecko/20110319 Firefox/3.6.16