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 »
Polecamy
Reklama
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
Pobieraczek.pl pozwie internautów, którzy nie chcą płacić abonamentu
1455
Debata w sprawie ACTA: internauci spodziewali się chyba czegoś innego
14
PHP 5.3.9 nie pozwoli hakerom zawiesić serwera. Pozwoli za to przejąć nad nim kontrolę
28
Programowanie w środowisku Android – wprowadzenie do projektowania aplikacji dla urządzeń mobilnych
15
Źle się dzieje z Chrome, ze stabilnością coraz gorzej. Gdzie się podziała słynna izolacja procesów?
26
Internet w EU bez Facebooka i Google? Firmy nie mają wyboru: albo się dostosują, albo…
10
Zaktualizuj PHP do wersji 5.4, zyskasz za darmo nawet o kilkudziesiąt procent wyższą wydajność aplikacji
6
MSWiA zamówiło narzędzia do „złamania” Tora i podsłuchiwania internautów. Czy złamało przy tym prawo?
89
[Aktualizacja] Facebook zablokował Demotywatory.pl. W czym zawiniły?
36
FBI zamknęło Megaupload. Anonimowi dali się sprowokować. Teraz ich akcja uzasadni potrzebę SOPA?
17
Pobieraczek.pl pozwie internautów, którzy nie chcą płacić abonamentu
1455
Programowanie w środowisku Android – wprowadzenie do projektowania aplikacji dla urządzeń mobilnych
15
„Donald matole, twój rząd dopadną kibole” – hakerska elita przyłącza się do walki z ACTA
23
Klamka jeszcze nie zapadła. Minister prosi Donalda Tuska, by wstrzymał się z podpisywaniem ACTA
24
Społeczność
pankracy ale dla piratów to i tak chyba niewiele wnosi ponieważ ściągając...
elodi dziwaczny melanż prawa rzymskiego, brytyjskiego Common Law i systemu...
krm a mógł otworzyć europejska siedzibę w Polsce, tu z pewnością byłby...
chrisgl "Streaming data from Blender into Three.js (WebGL+Websockets)"
Jest kilka...
skurg "skurg jeżeli będą zaszyfrowane to czemu nie ??"
A skąd wiesz że są...
Marek Polski Tak samo jak można powierzać komukolwiek pocztę elektroniczną, pieniądze...
adaks skurg jeżeli będą zaszyfrowane to czemu nie ??
- 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)
- Marek: problem z menu (2)
- Marek: Własne checkboxy w HTML,CSS (1)
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