O sistemin fonksiyonlarını kullanmak yerine dilini kullanmak sadece daha iyi olurdu?

4 Cevap php

Ben onun bazı işlevler ile PHP'nin performansını sorguladı, ve ben onun görünüşte yavaş araçlarını kullanarak belirli şeyleri işlemek için karmaşık bir sınıf oluşturmak gerekmediğini ettik birçok senaryo vardır.

Örneğin, sed ile işleme ile Kompleks düzenli ifadeler awk görünüşte performans ziyade PHP'nin düzenli ifade yapma üstel olacak ve görünüşte aşırı fonksiyonları ayrıştırmak ve zamanında bitirmek için yönetmek. Böyle MX aramalarını / Kazma / alma gibi ağ görevleri bir sürü yapmak olsaydı, aynı anda ben değil system() üzerinden geçmek ve OS kendisini halledeyim istiyorum. Verimsiz ve yavaş sayfaları neden ya da işletim sistemi tarafından daha kolay ele alınabilir PHP çok fonksiyon, sadece vardır.

Sizin görüşleriniz nelerdir?

Eğer ben kendi / özel işlevlerde OS ile zor işi yapmak gerektiğini düşünüyor musunuz?

4 Cevap

(Bu her zaman PHP'nin fonksiyonları kendilerini inşa ve C derlenmiş birçok PHP çekirdek fonksiyonları ve uzantıları oldukça hızlı olarak görerek, gerçek tutmaz rağmen) sistem çağrıları çok sık PHP yerleşik bir çözüm kullanarak daha hızlı olabilir.

Apart hızdan, ikinci faktör bellek sınırı olduğunu. Dışarıdan denilen işlemler, örneğin büyük dosyaları ile çalışırken büyük olabilir ki, PHP'nin başına komut sınırlaması uzakta yemem.

Ayrıca, bazı fonksiyonlar sadece PHP'nin kendisi mevcut değildir. Örneğin, tümüyle PHP içinde ImageMagick'in özellik setini taklit yolu yoktur. GD kütüphanesi ImageMagick neler sunabileceği yakın gelmiyor.

Büyük, büyük bir eksi sistem komutları kullanarak, etkili PHP'nin güzelliği bir parçasıdır taşınabilirlik, ortadan kaldırmak olduğunu. Farklı bir sunucuya uygulama hareketli dış komut seti özelliği aynı olması gerekiyor, çünkü büyük bir yük olur - ve Windows veya Unix içine OS sınır kapısı konuşmak için değil, hatta farklı Linux dağıtımlarının karşısında her zaman böyle değildir Mac OS tabanlı. Ben kendimi bu konuda wget ve Imagemagick ile sorunlar yaşadım, ben çok daha fazla vardır eminim.

Eğer tamamen sunucu ortamını (ve önümüzdeki beş yıl içinde satın alınacaktır sunucuların ne tür karar) hangi kontrol için özel bir uygulama üzerinde çalışıyorsanız, bu bir sorun olmayabilir. Eğer taşınabilir gereken yazılımı kurmak eğer olsa, biri olacaktır.

Ben şahsen çok kaybetmek taşınabilirliği daha (yani dış bağımlılık gerekir) bir özelliği kesip eğilimindedir, ama sonra, ben çok taşınabilir uygulamaları bina ticaret duyuyorum. Bu gerçekten odak bağlıdır.

Sistem süreçleri daha hızlı ve (kapsamlı test burada şarttır) daha az bellek domuz bile, akılda tutulması gereken bir şey var:

I system() aramaları kullanarak dikkatli olmak ve sadece sizin komut üzerinde çalışacak donanım kontrol eğer bunu kullanmak istiyorum. Bu çağrıları kullanılarak daha fazla yazılım / paketlerini yüklemek ve tüm OS (aynı şekilde) çalışmayabilir ihtiyacına sebep olabilir, bu nedenle sunucu kontrol edemez, ben PHP fonksiyonları ile sopa istiyorum.

Ben böyle bir fonksiyon çağırmak, her zaman işletim sistemi yeni bir süreç başlamak istiyorum çünkü, yavaş aslında olacağını düşünüyorum ve o zaman alıcıdır.

Diğer programları çağırarak değil - - "(sistem üzerinden geçmek) ve OS halledeyim" - Eğer aynı düşünüyor - (My experience "sistem çağrıları" genellikle çekirdek işlemleri çağrı anlamına gelir ama söz programların hiçbiri onlar sadece diğer programlar) - OS hizmetlerdir.

PHP aslında bir betik dilidir - geleneksel diğer programlar arasında veri taşımak için sadece bir tutkal vardır, ama bazı şeyleri dikkate hangi:

1) Performans - Yeni bir süreci çatalladıktan hesaplama pahalı olabilir

2) güvenlik - Webserver bile izinleri kısıtlı sistemde () tüm programlara sınırsız erişim sağlayarak potansiyel olarak çok tehlikeli

3) (2) en yapılandırmaları önlemek veya ne yapabileceğini sınırlar akılda rulman

4) Büyük ölçekli kalkınma için bu oldukça tehlikeli - programcılar sonra üst üzerinde PHP bir yağsız koyarak kendi seçtikleri herhangi bir dilde kod yazmak icar farklı dillerde birçok yazılı bir uygulama ile sona erecek demektir

5) çok kolayca kendi yerli kod PHP uzantıları yazabilirsiniz

Böyle MX aramalarını / Kazma / alma gibi ağ görevleri bir sürü yapmak olsaydı

Ben awk / sed ardından doğal PHP kodu daha hızlı / daha verimli olabilir kullanarak büyük veri kümelerini parçalamaya inanıyorum olsa da, ben biraz şaşırtıcı DNS aramaları daha hızlı farklı bir istemci kullanarak bulabilirsiniz. Bunu nasıl ölçmek mi?