PHP Constant vs PHP dizi?

4 Cevap php

Ben merak ediyorum, için PHP daha az bellek ve kaynakları kullanmak gibi herhangi bir performans artışı vardır:

Böyle diziye kaydedilir 50 farklı ayar değişkenleri

$config['facebook_api_secret'] = 'value here';

Ya da 50 farklı ayar değişkenleri böyle bir Constant kaydedilir

define('facebook_api_secret', 'value here');

4 Cevap

Ben bu bir micro-optimization olmanın alanda olduğunu düşünüyorum. İşte fark bu performans uğruna diğer üzerinden bir çözüm kullanarak değer olmadığını yeterince küçük olduğunu. Performans app kritik olsaydı, PHP kullanarak olmaz! :-)

Daha uygun ya da daha mantıklı ne olursa olsun kullanın. Sadece çünkü yapılandırma dosyası yüklendikten sonra değiştirmeye izin verilmemelidir eğer sabitleri içine geneli veri koymak ve bu sabitleri için var.

Benim gayri testlerde, ben aslında sabitlerini tanımlama / erişerek normal değişkenler / diziler biraz daha yavaş olduğunu tespit ettik.

yine bir farklı yapmak için gitmiyor; Bunlarla ne olursa olsun büyük olasılıkla daha fazla bir saniyenin binde olur.

(, Indeksleme sorguları kontrol etmek EXPLAIN kullanarak) DB optimize ve (APC kullanarak) kurmak sunucu uzun vadede daha fazla bir fark yaratacak.

Bunlardan biri için performans kazancı her türlü almayacaksınız. Asıl soru bir daha yararlı olduğu olduğunu.

, Bir kez tanımlanır değişikliği asla ve her yerde erişilebilir olması gerekir sayısal değerleri (Strings, ints, vb) için, sabit bir kullanmalısınız.

Karmaşık yuvalanmış yapılandırması çeşit varsa, örneğin:

$config->facebook->apikey = 'secret_key';
$config->facebook->url = 'http://www.facebook.com';

Sen (Zend_Config kötü değil) orada birçok çerçeveler biri tarafından sağlanan bir dizi ya da bir yapılandırma API kullanmak isteyebilirsiniz

Farklı bir kodlama tekniği / akıllı programlama hileler kullanılarak 50 değişken için performans kazançları PHP şeyler yapmak için yanlış bir yoldur. Asla unutmayın: the optimizer is smarter than you are.