I answered this on Reddit a few months back. Cevabımı aşağıda kopyaladım, çünkü o zamandan beri dünyanın durumu pek değişmedi. Ancak, HHVM'nin hala hızlı bir şekilde gelişmekte olduğunu ve aslında bir veya iki ay içinde bu durumun güncelliğini yitirebileceğini unutmayın.
Facebook'ta Hack ekibinde çalışıyorum. Bu sorunun cevabı biraz incelikli.
PHP kodunuzu PHP5'ten HHVM'ye taşımak, diğerlerinin de söylediğine göre, önemli bir hızlanma ile sonuçlanabilir. Ne kadar önemli bir faktör faktörüne bağlıdır. Zaten bağlı iseniz, hiç göremeyebilirsiniz; Eğer CPU'ya daha yakınsanız, 5x gibi bir şeye kadar olan hızlar rapor edilmiştir, ancak bir yerde bir şey bulmanız muhtemeldir. Gerçek bir iş yükü ile kendi kodunuzda denemeniz ve denemeniz gerekir - HHVM, mikrobunchmarklarda bu kadar iyi yapmayan, ancak daha büyük bir başlangıç süresine sahip olan bir dizi etkiye sahiptir, ancak gerçek iş yüklerinde PHP5'i geride bırakmalıdır. Maksimum fayda sağlamak için, kodunuzu üst seviyeden ve işlev/sınıflardan almak için yeniden kodlamak, repo authoritative mode'u ayarlayacağı gibi bir ton (toplevelde JIT kodu olamaz) yardımcı olacaktır.
Ancak bu yalnızca HHVM'de düz PHP, HHVM'de Hack değil. Hangi hızdan sonra kodunuzu Hack'e dönüştürüyorsunuz? Dönüşümün nasıl yapıldığına bağlı, ama cevap en azından şu anda "çok fazla değil". <?hh
'u <?php
yerine her dosyanın üstüne yapıştırırsanız ve come up when you run the typechecker tüm uyumsuzluklarını giderirseniz, kodunuz daha önce olduğu gibi aynı işlemi gerçekleştirir. Hack ve PHP kodları aynı çalışma zamanı gösterimine sahip, bu yüzden çok fazla değişmediniz.
Ancak bunu yaparsanız, Hack'den tam olarak yararlanmıyorsunuz! Girip ek açıklama eklemeye başladığınızda, HHVM'nin çalışma zamanında kullanması için daha fazla bilgi edinebilirsiniz. Bu işlemi, kodunuzu hızlandırabilen bir süreçtir - HHVM, türden türetmeyi gerçekleştirememiş olabileceği birçok durumda tür uzmanlık (yani daha hızlı) kodu oluşturabilir. Burada büyük bir hızlanma beklemeyin - bu büyük ölçüde teorik şu anda ve daha hızlı kod üretmek için tür bilgisinden daha iyi yararlanabileceğimiz birçok yer var. (Örneğin, şu anda çalışma zamanında geri dönüş türleriyle fazla bir şey yapmıyoruz). Fakat bu yardımcı olabilecek kısımdır ve HHVM daha akıllı hale geldikçe daha fazla yardımcı olabilir.
Ama elbette, yürütme hızının Hack'in bir noktası olmadığını unutmayın - geliştirici verimliliği ile ilgilidir. Herhangi bir performans artışı muhtemelen HHVM'de PHP'den HHVM'de Hack'e giden çabaya değmeyecektir. Geliştirici verimliliğinde kazanç olsa da, muhtemelen.
PHP5'ten HHVM'ye geçmek kodunuzu hızlandırıyor mu? Büyük ihtimalle. Hack’e hızlı bir dönüşüm yapmak hızlandırır mı? Hayır. Daha fazla tür ek açıklama eklemek hızlandırır mı? Belki biraz, belki gelecekte daha fazla, ama bu gerçekten önemli değil.
Neden denemiyorsunuz ve görmüyorsunuz; İster hack olsun ya da olmasın, HHVM'de PHP'ye geçmek için bir hız kazancı bekleyebilir misiniz? –
@Mark Elbette bazı küçük ölçütler yapabilirim, ancak onların temsilci olup olmayacağı konusunda hiçbir fikrim yok. Bunun arkasındaki teori ile daha çok ilgileniyorum. Birisi, HHVM JIT derleyicisinin özünde nasıl çalıştığına dair içgörülere sahip. – Benjamin
Hem anahtarlama platformu hem de geçiş dili hakkında konuşuyorsanız ....Eğer iki büyük değişiklik karşılaştırıyorsanız bir veya diğer dürüst bir ölçüm elde etmek zor ... neredeyse bir Apache/mod_php hhvm/php –