PHP hızlandırmak için C + + yararlanarak

6 Cevap php

Ben aşağıdaki gibi (SitePoint göre) gider Rasmus Lerdorf tarafından bir açıklama alıntı SitePoint Bu yazı gördüm:

Nasıl PHP hızlı yapabilirsiniz? Peki, "onun hızlı bir cevap oldu. PHP sadece Yahoo seviyelere ölçekli yeterince hızlı değil. PHP görevlerin bu tür içindir asla." Olamaz herhangi bir komut tabanlı bir dil "sadece yeterince hızlı değil. Hızını elde etmek için Gerçekten büyük web sistemleri için true, ölçeklenebilir mimarisi almak için derlenmiş C + + uzantıları kullanmak zorunda olması gereklidir. İşte Yahoo ne olduğunu ve pek çok diğer PHP siklettekilerle yapmak.

Deyimi (bahsetmiyorum kadar şimdi, ben PHP yaptığını tüm küçük bir veritabanı tabanlı uygulamalar olduğu için bu gerçeği) ilgisini, merak ediyordum nasıl PHP ile yapabilirdim "kullanımı derlenmiş C + + uzantıları".

Herhangi bir fikir veya kaynaklar?

6 Cevap

Hatta rahatsız etmeyin. PHP slow ... Sen C + + ve PHP bir karışım yaratmak olabilir ama yavaş ne olduğunu anlamak için profilleme çok yapmak gerekir olduğunu. Ve bu ... çoğunlukla PHP.

Aşağıdaki bakın:

Sadece ilk etapta C + + yazmak. Modern C + + web framework ve C iyi bilen + + PHP ile yazmaya kadar basittir.

Nerede başlar:

  • CppCMS - ölçeklenebilir MVC framework performans odaklı.
  • Wt - çerçeve bu web (iyi ölçekler nasıl emin değilim) için taklit Qt.

Yavaş öznel bir terimdir. Facebook (çevrimiçi büyük site) PHP üzerine inşa edilmiştir ve ben onları şikayet duymadım. Hız onların peşinde aykırı geliştirilen ve son zamanlarda ultrafast PHP için gidiyor iseniz odaklanmalıdır nereye HipHop bu yayımladı. Derlenmiş gerekiyor ve bu yavaşlama geliştirme süreci olacak, çünkü web için C + + tür pratik değildir.

Because: http://stackoverflow.com/questions/340298/why-are-so-many-web-languages-interpreted-rather-than-compiled

http://www.bitsandbuzz.com/article/compiled-web-vs-interpreted-web/

Darboğaz genellikle I / O veya daha doğrusu kullandığınız hangi dili daha veritabanı sorgularını.

Akla ilk soru şudur: Eğer saatte bir milyondan fazla hit işlerken bir web sitesi için geliştirmek mi? Çünkü değilse, o zaman maliyetleri all yazılım geliştirme, ve C veya C + + kod temeli bile bir kısmını göç daha geçerli PHP kodu ayarlama ve donanım ekleyerek paranın karşılığını daha fazla patlama alırsınız.

http://shootout.alioth.debian.org/ kod boyutu karşılaştırmalar not Ayrıca bkz.

Evet, bu seviyenin üzerinde (yaklaşık), sonra donanım maliyetleri derlenmiş bir dil geliştirme ekstra çabaya değer noktaya tırmanan başlar.

Akılda tutulması gereken bir sonraki şey bu kod kalitesi mükemmel daha hatta biraz az olduğunda çok iyi yazılmış bir derlenmiş kod hemen hemen her zaman, benzer bir iyi yazılmış yorumlanır kodu daha iyi performans göstereceğini doğrudur ederken, farkı azaltır - ve etkisi değişecektir dil gibi programcılar yeteneğine bağlı. Iyi oldukça olarak tarif olabilir ben şu anda ile programcılar tarafından PHP ile yazılmış ben başardım karşılaştırılabilir bir sistem, daha yavaş çalışmasına iki donanım kaynak gerektirir (native kod çalışır gibi) Java ile yazılmış bir yetkin geliştirilen web uygulaması bakmak beceri düzeylerinin geniş. Bu doğrudan çoğu programcı olarak sağduyu düşünmek ne çelişmektedir rağmen, ben yorumlanır / derlenmiş argüman tek olmadığını söyleyerek eminim. Orada orgranisations / bireylerin sürü hala yorumlanır langaues gelişmekte, örneğin vardır Groovy, Apex.

C.

Bu bilgilendirici linke bağlantı için Artyom sayesinde,

http://idleprocess.wordpress.com/2009/11/24/presentation-summary-high-performance-at-massive-scale-lessons-learned-at-facebook/

çok başka arasında, diyor, "Zorlu C + + birlikte çalışabilirlik."

C + + bir web sitesi yazmak için çok çaba gerektirir. Neden C + + ve PHP arasındaki bir dil seçmek değil, Python baytkodu JIT yürütüldüğü söylüyorlar, ve nispeten kolay bir C + + tarafından uzatıldı anlıyorum.

Büyük hesaplama ve işleme C + + php ile kullanılabilir. Ve hafif bir işlem için tek PHP yeterlidir.

Veri işleme veya hesaplama üzerinde çalışırken tabanlı uygulamalar C + + yardımcı olabilir. Eğer burada bir hile kullanmak zorunda değil lütfen.

Bir istek için listerning tutmak sunucu (daemon) süreç oluşturmak gerekir. Bu daemon süreç zaten derlenmiş ve işlem kodunu içerir.

Verileri işlemek için herhangi bir talep olduğunda bu yüzden çok daha hızlı PHP sonra bunu ve sonuç ile geri cevap verecektir.

Bir exec veya daemon yürütülebilir dosyayı çalıştırmak için benzer işlevi kullanabilirsiniz.