PHP veya vanilya Perl CGI hızlı mıdır?

11 Cevap php

Ben bir Apache paylaşılan barındırma sunucusu için bir web uygulaması geliştiriyorum. Zaten Perl bazı kod yazdım ama son zamanlarda benim için sürpriz, öğrendim, hosting sağlayıcısı mod_perl veya yüklemek için bir yol sağladı değildir.

Ben Mod_perl olmadan CGI aracılığıyla Perl web uygulaması çalıştıran çok yavaş olacağını biraz endişeli olmuştur? Bunun yerine PHP kodumu tüm geçmelisiniz, bu hızlı olacaktır?

Ben ilk etapta Perl seçti nedeni fazla PHP daha Perl ile çok aşina değilim, olduğunu. Ayrıca ben web geliştirme alanı dışında benim Perl kütüphaneleri kullanmak mümkün istedim.

Eğer herhangi bir Apache web geliştirme ile yaşanırsa ben hangi yönde almalıdır şekilde, bazı ışık tutabilir.

Bu sorunun aşkına, web uygulaması 500 + bir gün vurur alacak diyelim.

Mod_perl olmadan hızlı PHP veya Perl olurdu?

Yardımlarınız için şimdiden teşekkür ederiz.

11 Cevap

Sadece 500 Bulunmuş bir günde, hemen her şey sizin kod yazmak ve yavaş çıkışlar konusunda endişelenmenize gerek yok olabilir. 500 başarlı bir günde yaklaşık 1 sayfada için her 3 dakikada bir eşitler. Hatta hit olmayan bir normal dağılımı varsayımı, sen gerçekten böyle küçük bir trafik numaraları ile bu endişe edilmemelidir.

PHP hızlı olacaktır.

Ancak, günde sadece 500 isabet ile, CGI kullanarak bir sorun olmaz. Bile 500 hit bir saat ile.

Kadarını mimariye bağlıdır. Modern Perl çerçeveler iyi CGI (uzun start-up kez) olarak kullanım için uygun değildir. Eğer CGI kullanıyorsanız, Catalyst muhtemelen kötü bir fikirdir. Bu oldukça yönetilebilir olmalıdır klasik mimariyi kullanarak söyledi.

Lütfen paylaşılan sahibi bir CGI uygulaması (mod_php veya FastCGI değil) olarak PHP'nin çalıştığı sürece, PHP neredeyse 1 her zaman daha hızlı olacak olan. Perl, bir CGI olarak çalışan, muhtemelen 500 hits günde ele verebilir iken, CGI ile geliştirilen bir uygulama / sayfa durgun olacak.

CGI her istek için programı çalıştırmak için yeni bir süreç yumurtlama çalışır. Hem mod_php ve FastCGI uygulamaları bir dizi süreçlerin bir dizi üretiliyor ve sonra uygulamayı çalıştırmak için bu kullanarak bu azaltmak. Diğer bir deyişle, yeni işlemler her bir istek için kökenli varlık değildir. (Bu basitleştirilmiş açıklama, bir CS Dönem Ödevi kullanmak etmeyiniz. Daha fazla bilgi için mod_php ve FastCGI dokümanlar bakın)

  1. Sen olmaz patolojik örnekler gelebilir, ama sonra bir şeyler patolojik örnekleri ile gelip kişinin tür olurdu ve kimse istediği

Speed ​​endişe olmamalıdır. Her iki dilde web uygulamaları için uygundur.

Ben ikinci erken öneriler barındırma hizmeti sağlayabilir başka bir seçenek olarak FastCGI kontrol etmek olsa da trafik hacmi için, vanilya CGI Perl, bakıyoruz, bir sorun olmaması gerekir.

Ya da başka bir seçenek farklı bir hosting şirketi için bakmak olacaktır ...

Alan Storm said, yerine fcgi ile Perl kullanmak mümkün olabilir ne genişletilmesi.

FCGI FCGI protokol ve delegeler / istekleri gönderir yoluyla web sunucusu ile bağlanan tek başına sunucu bir tür, isterseniz bir cini, sahip çalışır.

Bu "servlet" modeli bir tür öykünür gibi bu normal CGI daha hızlıdır, uygulama kalıcı ve normal CGI ile olduğu gibi her çağrı üzerine yeni bir başlatma için gerek yoktur.

Ben henüz kendimi bu nasıl öğrenmiş değil, ama ben Catalyst bu seçeneği vardır inanıyorum bu yüzden onun bu çoğaltmak için nasıl öğrenme meselesi.

FCGI uygulamaları web sunucusu özgü değildir, ve bazı web sunucuları fcgi yarar yoluyla PHP uygulamak gibi FastCGI / FCGI, düz eski Mod_perl daha büyük ölçüde daha bilgisayarlardaki mevcut olmalıdır.

Ve ben FCGI biraz webserving tecrübe ettik ve ön testler 500/day veya 500/hour yukarıdaki kaygıları çok daha hızlı en az 500 req / s, işleyebilir söylüyorlar.

Onu desteklemeyen bir hosting hesabına Fastcgi desteğini kesmek mümkündür. Ben hosting hesabı üzerinde ev dizini olarak aynı şey ayarlanmış yüklemek öneki ile Fastcgi kütüphane derlenmiş. Sonra o kadar senkronize ve küçük cgi-fcgi köprü kullanmak üzere katalizör kurmak. Bu iyi çalıştı. Cgi köprü sadece küçücük yürütülebilir, çünkü güzel ve hızlı. Katalizör süreci gayet arka planda devam etti.

The answer in everyones mind is: who cares. 500 requests per day is nothing.

Hızlı / uygulamak korumak ve hareket etmek nedir, sadece kullanın.

CGI kullanarak çalışacak çakmak web çerçeveler daha sonra bakabilirsiniz ....

/ I3az /

Bu kodu nasıl karmaşık çoğunlukla bağlıdır ve nasıl birlikte koymak; CGI olarak çalıştırırsanız, perl her çağırma üzerinde komut ve modülleri derlemek, ve her istek için veritabanına bağlanmanız gerekecektir. Kod yeterince karmaşık ise, bu kullanıcı deneyimi engel olabilir ki, sayfa görüntüleme başına birkaç saniye sürebilir.

Senin kod temeli ve kullanılan modüller olsa da büyük değilse, hiç bir sorun olmamalıdır.

Eğer derleme zamanı ne kadar uzun perl başlangıç ​​ve için bir fikir almak için kod üzerinde bir perl-c yapabilirsiniz.