PHP Objects performansı hakkında bazı sorular

2 Cevap php

Şu anda kafamda gibi hissediyorum PHP nesneleri kullanarak yeni olduğum için, ben büyük ve hantal bir şey olarak bir PHP nesne düşünüyorum. Bu bana gerçekten çok basit bir kod alarak ve gerçekten nesneleri içine koyarak fazla komplike am gibi daha az sıklıkta, hissediyorum onları kullanmak istiyorum yapar.

Bir veritabanı, önbellek, oturumu, çekirdek, ve kullanıcı nesne var ve her diğer içinde ve diğer non-sözü sınıflarında hemen hemen onlara ulaşmak için gerekirse, ben bir kayıt nesnesi içindeki bütün bu saklamak için karar verdik. Peki nesnelerin nasıl benim sınırlı bilgi ile, neredeyse basit bir nesne içine bir kayıt nesnesi ileterek gerçekten büyük bir şey olduğunu bana görünüyor. Bir kayıt defteri gibi bunun içinde bu 5 nesneleri düzenliyor. Bu yanlış mı? Registy gerçekten sadece bu nesneleri bellekte nerede bir referans geçiyor? Yoksa gerçekten tüm nesneleri içine gerçekten BÜYÜK nesne geçirerek?

Bu hiç mantıklı eğer üzgünüm, umarım öyle. Ben sadece onlar performansına göre nasıl çalıştığını daha iyi anlamak için çalışıyorum.

2 Cevap

PHP5, tüm nesneler varsayılan olarak başvuruya göre iletilir. Basitçe, bir referans sadece bellekte gerçek nesne veya değişkenin konumu ("göstericiler" PHP'nin "referanslar" dan işlevsel oldukça farklı bir şey vardır, ama bunlar kavramsal çok benzer olarak, terminoloji ile dikkatli olun) "nokta".

Eğer referans etrafında nesneleri geçirdiğinizde, sadece çok küçük bellek göstergeler etrafında geçiyor. Nesneler kendilerini bellekte sabit kalır ... taşınmaz ve taşınabilir veya yeniden yazılamaz veya bir şey değildir. Eğer diğer nesneler içinde nesneleri koymak Bu içerir ... referanslar sadece ayarlanır.

OO tasarım ve programlama kodunuza kazandıran avantajları genellikle çok yönetmek nesneler ile birlikte küçük yükü ağır basmaktadır. Gerisi PHP yorumlayıcı optimum nesneleri yönetmek için en iyi yapar, ve tamsayılar veya dizeleri başvurular geçerek etrafında olandan nesneleri ileterek daha fazla yük üstlenmeden değil emin olabilirsiniz. Referans yükü çok az.

Önerilen okuma: PHP References