Parametresi ile php derleme arasında bir fark var mı:
--with-[extension name]
Sadece bu şekilde bir paylaşımlı modül olarak derlenmesi ve buna dahil karşı? Herhangi bir performans yararı var mı? Değilse, neden bunu yapmak istersiniz?
Herhangi bir performans yararı önemsiz olacaktır. Bu sadece PHP inşa kadar ambalaj için başka bir seçenek.
Benim Mac ben yerleşik PostgreSQL desteği, diğer şeyler arasında, içeren, Marc Liyange’s build of PHP kullanın. Bu --with-pdo-pgsql
bayrağı ile inşa edilmiştir. Sonuç olarak PDO-pgsql paylaşılan kütüphanesi ile dağıtılacak gerek yoktur.
O --with-pdo-pgsql
, o PDO-pgsql paylaşılan kütüphane dağıtmak için gerekli olurdu ile inşa ve bir yönerge içermiyordu Eğer php.ini
bunu yüklemek için. Tabii, bu sadece küçük bir fark var, ama size bu işlevini kullanarak olacak biliyorsanız, PHP'nin kendisi içine inşa etmek iyidir.
Belki de sorunun tam cevabı olmayacak, ama burada şimdiye kadar bulmak mümkün oldum ne: Sara tarafından yazılmış kitap "Extending and Embedding PHP" kısmi bir cevap, bir çeşit var Golemon (amazon; bazı bölümleri google kitaplarında da mevcuttur).
Ilgili kısmı (a note at the top of page 56) olduğunu:
Ever wonder why some extensions are configured using
--enable-extname
and some are configured using--with-extename
? Functionnaly, there is no difference between the two. In practice, however,--enable
is meant for features that can be turned on witout requiring any third-party libraries.--with
, by contrast, is meant for features that do have such prerequisites.
Yani, performansı hakkında tek bir kelime (bir fark varsa, bu "loading one more file" vs "loading one bigger file" meselesi sanırım ise); ama bu olasılık arkasında teknik bir neden yoktur.
Ben bu yapılır sanırım PHP kendisi çünkü bazı uzantısı değil require bir additionnal dış kitaplık; kullanıcılar zaten harici kitaplık sahip olup olmamasına bağlı olarak, kendileri etkinleştirmek veya devre dışı bırakmak uzantısı için doğru seçeneği kullanarak sağlar.
Ancak bazı komut satırı php düzgün çalışması yok, ortak modüller php sayfaları olarak yüklenen tüm fonksiyonlar hızlı yük ve cpu kullanımı düşük olan zaman fark ettim. Onun mantıksal gerektiğinde modülleri sadece yüklenmiş olacaktır olarak paylaşılan bir modül kurulum, büyük bir statik ikili daha ram verimli olduğunu varsaymak.
Ben Nate performansı hakkında doğru ve bu seçenekler sadece ambalaj için yardımcı olduğunu sanırım.
Temelde bir derlenmiş modül PHP ile derleme sonra, bu aramalar belleğe çevrilen, doğrudan modül işlevleri çağırmak, ancak çağrılacak giderir.
Yüklenebilir bir modül sürümü, PHP kitaplığı yüklenemedi bir dl_open arayacak ve sonra orada adresleri ile arama işlevleri, derlenmiş sürüm yaptığı gibi Arabistan'dan. Ben webserver başladığında bu dl_open çağrı sadece bir kez yapılıyor sanırım, bu yüzden bunu göz ardı edebilirsiniz.