Programmēšana

Facebook izdomā PHP virtuālo mašīnu

Sociālo tīklu gigants Facebook ir spēris vēl vienu soli, lai padarītu PHP Web programmēšanas valodu ātrāku. Uzņēmums ir izstrādājis PHP virtuālo mašīnu, kas, pēc tās teiktā, var izpildīt valodu pat deviņas reizes ātrāk, nekā palaist PHP dabiski lielās sistēmās.

"Mūsu mērķis ir panākt, lai PHP darbotos ļoti, ļoti ātri," sacīja Džoels Pobars, Facebook inženieru menedžeris. Kopš šī gada sākuma Facebook visos savos serveros ir izmantojis virtuālo mašīnu, sauktu par HHVM (HipHop Virtual Machine).

[Uzziniet, kā strādāt gudrāk, nevis grūtāk, apkopojot visus padomus un tendences, kas programmētājiem jāzina, ir izstrādātāju izdzīvošanas rokasgrāmatā. Lejupielādējiet PDF jau šodien! | Sekojiet līdzi jaunākajām izstrādātāju ziņām, izmantojot Developer World biļetenu. ]

Pobars apsprieda virtuālo mašīnu OSCON (O'Reilly Open Source Conference), kas šonedēļ notiek Portlendā, Oregonā.

HHVM nav pirmais Facebook mēģinājums pielāgot PHP ātrākai lietošanai. PHP ir interpretēta valoda, kas nozīmē, ka pirmkodu tieši izpilda procesors. Parasti interpretētās valodās, piemēram, PHP, rakstītās programmas parasti nedarbojas tik ātri, kā valodas, piemēram, C vai C ++, kuras iepriekš ir apkopotas mašīnvalodas baitu kodā. Facebook ir palicis uzticīgs PHP, jo to plaši saprot daudzi tīmekļa programmētāji, kas strādā uzņēmumā.

Lai neatpaliktu no negausīgā lietotāju pieprasījuma, Facebook sākotnēji izstrādāja kompilatoru HipHop, kas PHP kodu pārtulkos C ++, lai to ātrāk varētu apkopot ātrākai veiktspējai.

Kaut arī Facebook vairākus gadus guva ievērojamus ieguvumus no šīs pirmās HipHop versijas, tas meklēja citus veidus, kā paātrināt dinamiski izveidoto tīmekļa lapu piegādi saviem aptuveni miljardiem lietotāju. "Mūsu darbības stratēģija tam bija jāizmanto," atzina Pobars.

HHVM ir nākamais Facebook solis. Apmēram trīs gadus izstrādes stadijā HHVM faktiski darbojas pēc tāda paša principa kā JVM (Java Virtual Machine). HHVM ir JIT (tieši laikā) kompilators, kas pārveido cilvēka lasāmo avota kodu mašīnlasāmā baita kodā, kad tas ir nepieciešams. (Iepriekšējais HipHop, pārdēvēts par HPHPc, tagad ir izlaists Facebook.)

Šī JIT pieeja ļauj virtuālajai mašīnai "izpildes laikā pieņemt gudrākus lēmumus", sacīja Pobars. Piemēram, ja tiek izsaukts uz MySQL datu bāzi, lai nolasītu datu rindu, HHVM var ātri noteikt, kāda veida dati tie ir, piemēram, vesels skaitlis vai virkne. Pēc tam tā var ģenerēt vai izsaukt kodu uzreiz, kas būtu vislabāk piemērots šī konkrētā veida datu apstrādei.

Izmantojot veco HipHop, "labākais, ko tas var darīt, ir analizēt visu Facebook koda bāzi, pamatot to un pēc tam specializēties kodā, pamatojoties uz tā pamatojumu. Bet tas nevar iegūt visu pamatojumu. Ir dažas koda bāzes daļas, kas jūs nevarat vienkārši secināt vai pamatot, "sacīja Pobars.

Pobars lēsa, ka HHVM ir aptuveni divreiz ātrāks nekā HPHPc, un apmēram deviņas reizes ātrāk nekā skriet taisni PHP.

Facebook vietnē GitHub ir ievietojis HHVM kodu, cerot, ka citi to izmantos arī savu PHP vietņu paātrināšanai.

HHVM ir optimizēts, lai apstrādātu ļoti lielas un ļoti izmantotas PHP koda bāzes. Pobars uzskatīja, ka HHVM izmantošana standarta izmēra vietnēm, piemēram, WordPress emuāra uzturēšanai, sniegumu uzlabos tikai aptuveni piecreiz.

"Ja jūs paņemat kādu PHP un palaižat to HipHop, CPU izpildes laiks [var] nebūt ierobežojošais faktors veiktspējai. Iespējams, [sistēma] tērē pārāk daudz laika sarunām ar datu bāzi vai pārāk daudz laika sarunām ar [ kešatmiņas slānis memcache, sacīja Pobars.

Joabs Džeksons sniedz informāciju par uzņēmuma programmatūru un vispārīgām tehnoloģijām Ziņu dienests. Seko Joabam Twitter vietnē @Joab_Jackson. Joaba e-pasta adrese ir [email protected]

$config[zx-auto] not found$config[zx-overlay] not found