Php uyarı olmadan hızlı koşmak mı?

3 Cevap php

Etc statik olarak adlandırılan tanımlanmamış endeksleri ve statik olmayan yöntemler hakkında uyarılar ve bildirimler ile dolu olsa bile PHP kodu sadece iyi çalışır beri benim kodundan TÜM bildirimleri ve uyarıları kaldırmak için zaman harcamak, soru, o olacak run significantly faster?

3 Cevap

Ben yazarın bu konuda bazı kriterler yaptığı bir makale yer imi; maalesef, de Fransız ... ama burada (maybe you'll understand some parts of it) olduğunu: Ne faites pas d'erreur

Ve burada fransız okumaz insanlara yardım etmek, sayılar:

  • error_reporting ve display_errors etkinleştirilmiş 10k uyarılar: 5,162.76 ms
  • Aynı, ama display_errors devre ile: 136.18 ms
  • Aynı, fakat error_reporting çok devre dışı: 117.79 ms
  • ve nihayet, kod yama sonra bu yüzden artık herhangi bir haber üretmek değildir: 19.51 ms

O hangi görüntülenen ne rapor olmasa bile, evet, PHP kodu, bilgi / uyarı / hatasız hızlı çalışır, demektir.


Derick Rethans says the same thing in this article : Five reasons why the shut-op operator (@) should be avoided (quoting) :

Reason 3: It's slow (part 2)

Whenever PHP generates an error message internally, it's processed and formatted all the way up to the fully formatted message that can be outputted straight to the browser.
Only just before it is displayed the error_reporting setting is checked. This however, is not related to the @-operator exclusively.
The error message is just always fully formatted before error_reporting is checked—or display_errors for that matter.

Uyarıların miktarına bağlıdır, ancak relatively pahalı, hata iletileri gizleme bile PHP işleme hata vardır.

Ne etkisi C düzeyinde profil tahmin etmek için yapmak zorunda olurdu: (Linux üzerinde konum varsayarak) valgrind yükleyin ve sonra çalıştırın

callgrind /path/to/bin/php /path/to/script.php

Bu php_error_cb nasıl görmek için callgrind.12345 ya da öylesine, kcachegrind gibi bir uygulama içine bu dosyayı yüklemek ve php_error_docref0 veya aramak için adında bir dosya oluşturur çok zaman hata işleyicisi geçti.

Bu ve zihin yaparken dahil birçok sistem bağımlı değişkenler olduğunu cachegrind ve valgrind docs zihin lütfen.

EDIT: Ah bir not daha: Ben veritabanları ve benzer sistemlerin konuşurken way daha fazla zaman harcanan olduğunu varsayalım. ve başka ek not: bu performans bağımsız iyi bir fikir yani bildirimlerini sabitleme genellikle gelecek değişiklikler için kodu daha sağlam yapar.

Ben oldukça çoğu için "önemli" bir gelişme diyoruz, ancak herhangi bir hata oluşturmaz kod çalıştıran tür doğal olarak daha hızlı bir yığın izlemesi her satırı oluşturmak zorundadır kod daha çalışır olmaz.

Çıkış: http://www.noamdesign.com/Web-Design-Blog/15-tips-to-optimizing-your-php-code/ küçük optimizasyonlar hakkında daha fazla bilgi için size kod yapabilirsiniz.

Kendi tecrübelerime dayanarak, ben kod optimizasyonu% 95 genellikle veritabanı kullanmak nasıl fırsatlar olduğunu tespit ettik.