Wikipedia przeszła na silnik HHVM

Wikipedia przeszła na silnik HHVM

    przez -
    22 1108
    Wikipedia
    Wikipedia i zespół HHVM dumnie ogłosili zakończenie trudnego okresu przejścia całej strony z silnika PHP na HipHop Virtual Machine. Cały proces zajął zespołowi Fundacji Wikimedia oraz Brettowi Simmersowi z HHVM przeszło cztery długie tygodnie. Wikipedia dzięki tej zmianie serwuje całe niecachowane API i ruch sieciowy na silniku HHVM. Skok wydajnościowy jest ogromny, bo udało się zejść z 7 sekund podczas edycji i zapisu do zaledwie 3 sekund. Zmniejszono także zużycie procesora oraz ilość operacji wejścia/wyjścia dysku.

    • test

      szał

    • nazwa

      OT, ale takie tam: http://imgur.com/cLIS2Oj ;-)

    • Szyk Cech

      Ciekawe kiedy oni odkryją fakt, że do krytycznych zadań nie pisze się “maszyn virtualnych” ale programy w C/C++?

      • Roman

        Idź i im napisz te krytyczne zadania w cpp, zamiast gadać tu. Zrobisz się sławny jako optymaluzator wiki.

      • pijaczek

        Akurat VM do stron internetowych to dobre wyjście. HipHop Virtual Machine powstał jako następca HipHop for PHP (zmieniająca kod PHP na C++ i kompilująca do kodu natywnego)… bo akurat w wypadku stron internetowych najlepiej sprawiają się wirtualne maszyny.
        Mają dobre alternatywy w postaci JSP i ASP.NET… ale skoro zrobili już błąd lata temu i wybrali PHP to HHVM było naturalnym wyjściem, aby nie przepisywać całego projektu od nowa.

      • o_O

        >dobre alternatywy
        >JSP i ASP.NET
        >dobre
        Dobry to jest powyższy żart.
        Tyle, że trochę tragiczny, bo niektórzy nie załapali i pomyśleli, że to prawda.

      • pijaczek

        Zamiast gadać bzdury poczytaj jak wydajne jest JSP czy ASPX… a jak powolnym rozwiązaniem dla stron internetowych jest C/C++ (ofc nie przez język, a powolność CGI/FastCGI, co powoduje, że taka sama strona działa 3x dłużej w C niż w JSP).

        O ile C/C++ są świetne dla aplikacji, gier i praktycznie wszystkiego co się rusza, to wyjątkiem są strony internetowe… tu przez to, że CGI/FastCGI zasysają, dzięki C/C++ tylko tracisz wydajność, a dodatkowo dodajesz sobie sporo pracy.

      • garrappachc

        Poczytaj sobie jak Facebook optynalizuje kod PHP to C++. Ciekawe, czemu to robią, pewnie dlatego że mają zbyt mocne serwery i się nudzą.

      • pijaczek

        PHP do C++ (HipHop for PHP) wykorzystywali, bo PHP był jeszcze wolniejszy. Jednak już na początku 2010 roku (zaraz po przejściu wydaniu HipHop for PHP) uznali, że to jest zastąpienie złym rozwiązaniem gorszego i stworzyli HipHop Virtual Machine na wzór JSP/ASPX (i już od 2011 go używają (PHP do C++ używali bardzo krótko)), aby zyskać wyższą wydajność niż w wypadku C++… bo właśnie nie mają zbyt mocnych serwerów, które się nudzą.

      • Roman

        A to nie polega na tym, że C++ się do tego nie nadaje przez koszt wytworzenia takiego softu?
        Bo co z tego, że usługą będzie potrafiła zrobić odpowiedź w 100 us, skoro będzie musiała czekać na dane z bazy 30x dłużej.

      • pijaczek

        W wypadku HipHop for PHP i HipHop Virtual Machine koszt wytworzenia nie ma znaczenia – w obu przypadkach piszesz w PHP, a ten pierwszy przetwarza go na C++ i kompiluje do kodu natywnego, a drugi przetwarza na kod pośredni i uruchamia w maszynie wirtualnej. W tym wypadku Facebook czy Wikipedia wybrały maszynę wirtualną nad kodem natywnym z kompilatora C++ tylko i wyłącznie ze względu na wydajność.

      • Roman

        Czyli wychodzi na to, że chodzi głównie o koszty produkcji i utrzymania kodu? I żeby ci tani/powszechni programiści mogli pisać wydajny kod?

      • pijaczek

        Chodzi o to, że Facebook czy Wiki to początkowo małe projekty i źle wybrali język (tzn wybrali ten powszechny który jest na każdym serwerze – wiki to projekt dla innych stron (jak wikipedia), a facebook to studencki projekcik). Problem w tym, że oparte o kiepski, ale popularny w webdev język PHP stały się popularne i to co w małych stronach nieistotne czyli wydajność sprawiła, że stanęli pod ścianą – do wyboru masz wtedy: Wybrać jakiś sensowny język i pisać wszystko od nowa (bardzo kosztowne). Napisać automat, który sam przepisze PHP do C++/bytecode (dużo tańsze).

      • O_o

        jedyna sensowna alternatywa to platforma o_O, oparta o wolny język o_O. Cała reszta to lewackie brednie

      • gosc

        VM jest niezłym krokiem pośrednim, niewymagającym kosztownego przepisywania kodu (tylko drobne korekty zgodności). Tutaj mamy sporo serwerów, nie musimy mocno cisnąć na wydajność, bo nie jest to jeden Pentium 166MHz, ale wzrost wydajności jest wskazany. VM działa tu też na efekcie skali – przy dużej liczbie generowanych stron czas poświęcony uruchamianiu skryptów, translacji i parsowaniu kodu, czy ładowania kolejnych części staje się problemem.
        HHVM używa istniejącego kodu w PHP, pierwsze wersje to był chyba nawet translator PHP na C++, aktualnie jest to kompilator do wewnętrznego kodu. Należy zauważyć, że wiele serwerów posiada duże udogodnienia związane z VM, nie wiem jak HHVM ich używa, ale zapewne to robi. Dzięki temu unikamy kilku spowalniających nas warstw abstrakcji przetwarzających PHP’a i uruchamiających skrypty, bo uruchamia się to wszystko jak skompilowany program na maszynie wirtualnej.

    • o_O

      Jak można nazwać silnik od hiphopu? o_O
      Czy pisały to te przysłowiowe zastępy małp stukających losowo w klawiaturę?
      Wybór takiej nazwy jest dla mnie od razu ostrzeżeniem co do jakości produktu.

      • Wintel Outside

        Ty tak robisz tutaj, ale nic z tego sensownego nie wychodzi, neonazisto. Może kup sobie pianino ;-)

      • gosc

        Czemu nie?
        Kilka nazw nie tak starych (a już na pewno nie z epoki 8+3) narzędzi:
        HGCFEU (edytor czcionek),
        LSTC (to do pre-processingu symulacji numerycznej),
        SLFTDT (narzędzie do ładowania tekstowych wersji obrazów oprogramowania do central telefonicznych),
        Wobec tych nazw HipHop Virtual Machine jest całkiem fajną nazwą.

      • o_O

        Twój nick również sugeruje, że możemy mieć do czynienia z debilem i taka jest rzeczywistość.

      • asd

        bo oni nie słuchają prawdziwego hiphopu

      • icywind

        Nie można po prostu powiedzieć, że nazwa ci się nie podoba? No nie, jak można przy okazji kogoś obrazić. Nazwa o_O to już pewnie szczyt geniuszu na który małpy nigdy by nie wpadły. Jedyny słuszny silnik to o_OVM.
        I mówi to osoba która HipHopu nie lubi.

      • webnull

        On sam sobie odpowiedział – “o_O -> o_O” z wiadomością “Twój nick również sugeruje, że możemy mieć do czynienia z debilem i taka jest rzeczywistość.”