PHP Boş Fonksiyonlar Performans

2 Cevap php

Boş bir PHP işlevini çağırma 'maliyetleri' dahil nelerdir? CMS güvenlik, erişim izinleri, post işleme, zamanlama, http (s) ve benzeri gibi şeyler işlemek için onun ömrü içinde çeşitli noktalarda yer modül olayları tetiklemek için ana amacı budur. Onlarca kez her toplam aramalar her sayfa yük için bir noktada potansiyel yüzlerce ve hatta binlerce ulaşacak denilen bir düzine modüller olabilir beri.

İlk modül temelde kovuldu ne tetikleyici olay işlemek ve iletilen veriyi işlemek için nesne ile değiştirilecektir aşağıdaki kodu gibi görünecektir:

function trigger ($trigger_name, $data=false)
{
    return false;
}

Bu sonuçta bir sorun olacak ve ben bunun yerine modülleri anlamsız işlev çağrıları miktarını azaltmak için bir tetikleyici ön-kayıt sistemi içinde çalışması gerekir?

2 Cevap

ben bu bağlantı bulundu:

http://phplens.com/lens/php-book/optimizing-debugging-php.php

Bir parametre ve boş bir fonksiyonu vücut ile bir işlev çağrısı 7-8 $ localvar + + işlemleri yapıyor gibi aynı zaman alır. Benzer bir yöntem çağrısı elbette yaklaşık 15 $ localvar + + operasyonlardır.

Update: 11 July 2004: The above test was on PHP 4.0.4, about 3 years ago. I tested this again in PHP4.3.3 and calling a function now takes about 20 $localvar++ operations, and calling a method takes about 30 $localvar++ operations. This could be because $localvar++ runs faster now, or functions are slower.

Ben daha fazla bir şey ile gitmek istiyorum olay tabiatlı PHP'nin eksik olay desteği için this work around gibi. Eğer önceden ruhsatlarının ile aklında ne vardı benzer.

Eğer boş işlev çağrıları bir demet performans zarar (gerçi bunlardan binlerce? Belki). Olmaz bunu yapamam veya tercih yapamıyorsanız Ben zaman bir sayfa hizmet nereye harcandığını görmek için bazı temel profil yapardım. Boş fonksiyonları zaman önemli miktarda almak olduğu gösterilmiştir, o bunu dert ediyorum.

Ben sayfa diğer daha heybetli darboğazları olsa, pek çok tetikler gerektirir ve etmeyecek kadar karmaşık bir durum düşünemiyorum. Bu sayfa çok oluyor varsa, eklendi tetikler daha az önemli hale vardır.