Web Siteleri için derlenmiş Dilleri (vb PHP, ASP, Perl, Python,) vs yorumlanıyor

7 Cevap php

Ben veritabanı odaklı web siteleri oluşturabilirsiniz. Daha önce MySQL ile Perl veya PHP kullandık.

Şimdi bir yeni büyük bir proje başladım ve ben most responsive possible site sonuçlanacaktır şekilde yapmak istiyorum.

PHP nasıl optimize hakkında sorular çeşitli sürümleri ile eleştiriliyor burada birkaç sayfaları gördük "bunun bir dil var ve bu çok fark olmaz çünkü PHP optimize etmek için büyük çaba olacak değmez".

Ben de compiled vs. interpreted languages yararları hakkında çeşitli tartışmalar (SO podcast especiallon) duymuş ve bunun yerine bir yorumlanmış bir site sunmak için derlenmiş bir dil kullanmak benim çıkarına olacağını sanki görünüyor dil.

Eğer öyleyse Is this even possible in a web context?, ne makul bir dil seçim olacaktır?

Hızlandırmak için Ayrıca ben forsee bir yararı yerine web sitesine hata ayıklamak zorunda finding bugs at compile time bir olasılıktır. Bu beklemek mantıklı mı?

7 Cevap

Ne yapabilirim birden fazla ağır trafik web siteleri (Facebook ya da Twitter gibi) ne olduğunu, aka C-eklenti sizin "CPU tüketen" algorythm yazmak.

Örneğin, siz yazabilirsiniz bir PHP extension PHP, ya da bir Ruby extension Eğer Ruby on / Ruby kullanmayı planlıyorsanız, vb kullanmayı planlıyorsanız

Güçlü ve sağlam bir arka plan çekirdek yerken derlenmiş, çünkü bu şekilde, (, (PHP ziyade C isteği işlemek için yol zor olabilir) korumak için basit ve kolay düzene kodunuzu tutabilir, ve derleyici ne söyler konular) derleme zamanında vardır

Eğer ... Yeni bir dil oluşturmak için gittiğini ve tüm semantik ile geldi ve tam oldu ve yorumlanır vs derlenmiş dili yapmak arasında bir geçiş vardı bazı sihirli kutusu olsaydı, derlenmiş bir sürümü daha hızlı olacaktır yorumlanmış versiyonu daha.

Neden? compiling interpreting senin dilin semantik bazı {[(2) tarafından çevrilmiştir anlamına gelir, oysa çok daha hızlı yürütülecek anlamına gelir makinede düşük bir seviyeye aşağı semantik getiriyor çünkü }] (yani yorumlayıcı) kullanıcı aslında sitenizi kullanır.

... Bu mutlaka sitenizin bir yorumlanmış bir dil vs derlenmiş bir dil daha hızlı% 100 çalıştırmak için gidiyor anlamına gelmez dedi sahip. Tercümanlar çeşitli dillerde (örneğin PHP) için günümüzde çok hızlı olduğunu orada vardır ve hızlı hatta hala bunları yapmak yorumlanır dilleri için bile optimize vardır.

Seçtiğiniz dil agnostik sitenizin performansına girmek birçok başka şeyler vardır. Vb donanım kurulum, Veritabanı kurulum, Ağ topolojisi, Bu şeyler üzerinde büyük bir etkisi olabilir. Ben emin olmak için ölçüm öneririm.

Benim için, derleme zamanında hata bulma huge zaman tasarrufu, yani yazdınız derlenmiş dilleri tercih etme eğilimindedir. Bu benim iş daha hızlı halletmek sağlar, ama bu objektif iyi seçenek yapmaz. Bazı insanlar hiçbir sorunu zayıf yazılan kod yazma, ve ben sadece de işe düşünürdüm işlevselliğini doğrulamak için onlara test suit çalışan var.

O yönetilebilirlik sorunları bir dizi karşı fayda değil verir gibi, bir derlenmiş bir dil kullanarak karmaşık bir web uygulaması yazmak için oldukça non-sense IMHO.

Orada küçük performansları tamamen etkili bir programlama dili ile sonunda mevcut kazanmak olan, dil düzeyinde ve sistem düzeyinde hem de, bir komut dosyası dili performans ve ölçeklenebilirlik yükselmek için pek çok.

Diğer tarafta ben sadece kodunu değiştirerek ve sonuçları görmeye, çevik geliştirme ve hata av şemasını takip etmek mümkün olacak çok yararlı buluyorum.

Perl bir dil değildir: baytkoduna derlenmiş, böylece perl çalıştırılabilir başladı sadece yorumlama fiyatı öderler. Apache ile kullanırken yüzden, CGI ama mod_perl kullanmayın.

Ne yaparsan yap, geliştirme zamanı muhtemelen web programlama için uygun değildir ya da yapmanız gereken ne destek iyi kütüphaneleri olmayan bir dil seçmek eğer yaygın tepki süresini aşması gidiyor. Örneğin Ben C almak veya C + + asla. Sen blisteringly hızlı ama adamcağız ve geç 6 ay, bir web uygulaması istemiyorum.

Tomcat web sayfalarını dağıtmak için derlenmiş dillerini kullanmak için ortak bir yoldur, ancak çok ileri gitmeden önce, ciddi dikkate what your speed bottlenecks will be. Web uygulamaları yavaşlamanın bir kaç ana kaynağı vardır:

  1. Ağ gecikmeleri
  2. Statik medya, özellikle görüntüleri
  3. Veritabanı sorguları
  4. Sunucu tarafı işlem kodu
  5. İstemci tarafı işlem kodu

1 ve 5 gerçekten bu soru ile ilgisi pek yok.

Eğer sayfa sayfa değişen birçok resim varsa 2 alakalı olacaktır. Bu durumda, istemci tarayıcılar gibi iyi bir iş önbelleğe alma yapmayacağım ve her sayfa yükleme biraz zaman alacaktır. Bu durumda, statik medyadan havai hakim olacak çünkü sunucu tarafı dil, fark olmayacak çok muhtemeldir.

3 uygulamaları bir çok 4 daha büyük bir faktör olduğu muhtemeldir. Çok az veri var, ancak işlem bir sürü yaparsanız, daha sonra 4 hakim olabilir, ancak bir yorumlanmış bir dil kullanıyor olsanız bile, aksi takdirde, 3 hakim olacaktır.

İnsanlar "Neden php optimize?" Sorabilirsiniz 2 ve 3 yine de genellikle daha önemlidir, çünkü. Genellikle iyi bir database caching framework daha iyi (ve kolay) optimizasyon olacak.

Bir web uygulamasına gider parçaların çok sayıda bulunmaktadır. Uygulama katmanı tarafından alınan zaman büyük olması gerekmez. Tipik bir uygulama için, büyük domuz webserver'daki ve veritabanı olacaktır. Ikili bir CGI PHP değiştirilmesi bu değiştirmek için gitmiyor.

PHP yorumlanır parçaları biraz yavaş olabilir iken Ayrıca, bir PHP komut dosyası yürütme biteni sadece küçük bir parçasıdır. Dilin bir parçası olarak temin edilmiştir tüm fonksiyonlar yerel kod uygulanmaktadır. Örneğin, sizin gibi bir işlevi çağırdığınızda preg_match, bir yerel kod kütüphanesi arayacak ve onun çalışma yapalım. Bu düşündüğünüzden daha devam az gerçek yorumlama var demektir.

Orada PHP farklı bir dil kullanarak değerli olabilecek bazı durumlar olabilir, fakat bu özel durumlardır olabilir. Genel olarak, burada kazanmak için hiçbir şey yoktur.

Ağ gecikme bugüne kadar bu argüman en büyük belirleyici faktördür. Aslında, ağ gecikmesi bir performans sorunu gelen dil hususlar oldukça önemsiz kılan bir faktör kadar fazla. Yani ... bildiklerini ile gitmek. Kendinizi en rahat ve en verimli ve geçinmek gibi diğer hususlar dışarı çalışmış olabilir dil kullanın. Şimdi, bu yeni şeyler denemek ve yeni şeyler öğrenme bir saplantı haline gelebilir, her zaman eğlenceli, dedi, böylece proje size her türlü vasıta ile, iyi, deneme fırsatı sağlayan bir kişisel biriyse .....