Optimizasyon aşamasında, bu ref tarafından tüm dizi geçmek akıllı olacak Ne zaman?

3 Cevap php

PHP, biz uygulama optimizasyon aşamasına geldiğinizde (I kullanıcıları binlerce yüzlerce kolları bir uygulama hakkında konuşuyorum) ben onları geçmek sonra ben onlara ne sakıncası yoksa burada (tüm diziler geçmek akıllı olacak işlevine) ref tarafından?

3 Cevap

PHP dizileri copy-on-write semantik var. Yani modifiye kadar yeni bellek yeni dizi için tahsis anlamına gelir. Örneğin:

$a = array(1,2,3);
$b = $a; // $b points to the same memory locations as $a
$b[1] = 4; // $b is copied and the modification is performed

Diziler farklı yöntemler bir sürü arasında etrafında geçti ve sürekli olarak tüm bu lokalize kapsamları değiştirilirse, referans geçen bir fark yaratabilir. Ancak, bu diziler modifiye ediliyor değilse bu değişiklik mümkün olduğu anlamına gelir uygulamanın semantik değiştirmek istiyorsunuz.

Yani hiçbir avantajı referans olarak diziler geçirmeden tüm var demektir. Bunu yapmayın.

Muhtemelen, büyük performans yerde tıklanma ihtimali var değil.

Başvurunuzu profili. your profiler optimize etmek için ne söylemek haricinde kimseye güvenme.

Bazen kod garip parçaları yürütme çoğu zaman kadar kullanmak ve darboğazlar tam olarak nerede olduğunu bilmeden, uzak yürütme zaman 0.01% optimize uzun bir zaman geçirmek olabilir.

Bu makale http://derickrethans.nl/files/phparch-php-variables-article.pdf Bu önerilen optimizasyon dizileri uygulanır şekilde verilen herhangi bir fark yapmaz, olabilir ve aslında yavaş aşağı şeyler önerir.