HipHop رمز سرعت بالای فیسبوک

به گفته‌ی توسعه‌دهندگان، سرورهای فیسبوک ماهیانه بیش از ۴۰۰ میلیارد درخواست را با کمک php پاسخ می‌دهند. همان طور که می‌دانید، php در هنگام اجرا تفسیر می‌شود و می‌تواند فشار زیادی را بر روی سرور وارد کند.
یکی از راه‌حل‌های این مشکل افزایش قدرت سخت‌افزار و در نتیجه اضافه شدن هزینه‌ها است.

توسعه‌دهندگان فیسبوک نیز برای حل مشکل، راه‌حل‌های مختلفی را بررسی و آزمودند، بهترین راه حل آن‌ها ایجاد HipHop بود.
HipHop ابزاری است که کدهای php را به C++‎ تبدیل می‌کند و سپس این کد با کمک کامپایلر gcc به زبان ماشین کامپایل می‌شود.

البته امکان توسعه‌ی سایت بر پایه‌ی C++‎ نیز فراهم است. از طرفی سختی برنامه‌نویسی با این زبان و از طرفی سادگی زبان php و کتابخانه‌های آماده‌ی php برای توسعه‌ی ابزارهای تحت وب سبب شدند تا این گزینه رد شود.

HipHop ابزاری است رایگان و متن‌باز که سبب می‌شود کارایی تا حدود ۵۰ درصد افزایش یابد. این مقدار افزایش کارایی یعنی ۵۰ درصد هزینه‌ی کمتر برای سخت‌افزار و به همین‌نسبت هزینه‌ی کمتر نگهداری و مصرف انرژی.

با توجه به اینکه خروجی HipHop زبان ماشین است، برای استفاده کردن از این فناوری لازم است تا یک سرور اختصاصی( Dedicated Server ) یا سرور مجازی( Virtual Private Server ) در اختیار داشته باشید و با انجام تنظیمات لازم از HipHop به عنوان خدمت‌رسان سرور وب خود بهره‌برداری کنید.

در حال حاضر HipHop از کدهای نوشته شده با PHP 5.2 پشتیبانی می‌کند. انجام تغییرات برای پشتیبانی از PHP 5.3 آغاز شده و در آینده‌ی نزدیک به پایان خواهد رسید.

کامپایلرها و بهینه‌سازهای دیگری نیز برای افزایش کارایی php توسعه یافته‌اند که هر یک به دلیلی در رقابت با HipHop از کاستی رنج می‌برند. با توجه به قابلیت‌های بالایی که HipHop در اختیار توسعه‌دهندگان قرار می‌دهد، php به یکی از گزینه‌های غیرقابل چشم‌پوشی در تولید ابزارهای عظیم تحت وب مبدل گشته است.

برای اطلاعات بیشتر به صفحات زیر مراجعه کنید
https://github.com/facebook/hiphop-php/wiki/
http://developers.facebook.com/blog/post/358/

این نوشته در PHP, برنامه‌نویسی ارسال شده است. افزودن پیوند یکتا به علاقه‌مندی‌ها.

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

شما می‌توانید از این دستورات HTML استفاده کنید: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>