HHVM/tr


 * Daha kısa bir açıklama için HHVM/Hakkında ve Aralık 2014 blog gönderisini HHVM, "Vikipedi'yi iki kat daha hızlı düzenlemeyi nasıl yaptığı", faydaları ve dağıtım çalışmalarına bir bakış.

HHVM, 2014 yılında Wikimedia sunucularında dağıtılan bir PHP yorumlama aracıdır (somut olarak PHP bayt kodunu çalışma zamanında yerel talimatlarla derleyen sanal bir makinedir) ve yükleme süresini azaltır: oturum açtığınızda görüntülediğiniz tüm sayfaları ve oturum açmış olsanız da olmasanız da düzenlediğiniz sayfaları kaydetmek için.

Yol haritası
HHVM web sitelerinin MediaWiki (PHP ile yazılmış) çalıştırması için yeni bir yoldur. Bazen tam adı HipHop Sanal Makinesi ile bilinir ve tam zamanında bir derleyiciye (JIT) sahiptir. HHVM, oturum açmış kullanıcılar için sayfa görüntülemeyi hızlandırmalı ve ayrıca düzenlenmiş sayfaların tüm kullanıcılar için kaydedilmesini hızlandırmalıdır.

Bu sayfa MediaWiki'de WikHop destekli HipHop desteği ve Wikimedia üretim vikilerine konuşlandırılmasıyla ilgili.

Tarihsel olarak, HipHop derleyicisi Facebook tarafından dili hızlandırmak amacıyla PHP kodunu C++ derlemeyi içeren bir projeydi. Facebook o zamandan beri bu projeyi terk etti ve şimdi geliştirme çabaları bunun yerine HHVM'nin kendisine odaklanıyor.

İşte 2014 yılında HHVM'yi üretim kümesine dağıtmanın genel planı:


 * Deployment to Beta Cluster (currently ongoing work, in parallel with other work) ✅
 * Week of July 21: deployment to a few job runners in production ✅
 * Deploy to test.wikipedia.org application server ✅
 * Deploy Varnish module allowing partial deployment to a fraction of application servers✅
 * Limited deployment to small number of application servers ✅
 * Ramp up deployment to more application servers until most servers use HHVM✅
 * Deploy to remainder of services✅

HHVM work
Phabricator: Open tasks, All tasks.

Rationale
It is a well-studied phenomenon that even small delays in response time (e.g. half of a second) can result in sharp declines in web user retention. As a result, popular websites such as Google and Facebook invest heavily in site performance initiatives, and partially as a result, remain popular. Formerly popular sites (such as Friendster) suffered due to lack of attention to these issues. Wikipedia and its sister projects must remain usable and responsive in order for the movement to sustain its mission.

Facebook, as a big user of PHP, has recognized this problem, and invested heavily in a solution: HHVM, a virtual machine that compiles PHP bytecode to native instructions at runtime, the same strategy used by Java and C# to achieve their speed advantages. We're quite confident that this will result in big performance improvements on our sites as well.

What does HipHop do for our end users?
MediaWiki is written in PHP, a language that is interpreted at run-time. The overhead of running this PHP code every time someone views a page necessitates the usage of caching servers, running software such as Varnish, which cache the HTML generated by running this PHP, so that the PHP does not have to run every time a page is viewed. These caches only serve users that are not logged in. Actions which are not affected by the cache, and therefore are affected by the run time of PHP code, include: Therefore, any action we can take to reduce the time it takes for MediaWiki's PHP code will therefore also decrease the loading times of our site for all of our logged in users and anyone who edits anonymously.
 * Any page you view while logged in.
 * Saving pages that you've edited, whether you are logged in or not.

HipHop was written to be a faster, more efficient PHP interpreter than our current interpreter (Zend). It is our hope that by implementing HipHop as a replacement for Zend, our users will notice a tangible increase in the performance of our sites.

How does our development work on HipHop affect MediaWiki developers?
In our initial sprint of work, due to be finished at the end of March 2014, we hope to make it so that anyone can elect to use HipHop on Beta Cluster instead of Zend. This will be on a totally opt-in basis which can be disabled at any time. This will allow the MediaWiki Core team to gauge the performance of HipHop against that of Zend directly using our current test infrastructure, instead of just estimating theoretical performance increases. It will also create a development environment that will help us see how much work is needed to make HipHop compatible with MediaWiki, and as such let us create an estimate for how long it will take us to get HipHop live on production as a full replacement for Zend.

For other MediaWiki developers, the consequence of HipHop being deployed in this manner is that if they are using the Beta Cluster as a test environment, they will find it trivial to test how their patches perform using HipHop instead of Zend if they wish to. However, to minimise the disruption of our work, the opt-in nature of the infrastructure will allow developers will be able to continue to develop totally agnostic of the future HipHop migration if they wish to do so.