SORU
29 NİSAN 2011, Cuma


'in PHP count(), O(1) veya O(n) dizileri için?

eğer PHP count() gerçekten PHP-dizi, tüm unsurları sayar ise bu değer önbelleğe bir yerde olduğunu ve sadece alınır mı?

Doktorlar bu kadar çok ve çeşitli blog yazıları hakkında söyleme sayısı performansını ölçmek() bu konuda konuşmayacaksın.

(Başlık için özür dilerim tam olarak nasıl tarif edeceğimi bilemedim.)

CEVAP
29 NİSAN 2011, Cuma


Peki, kaynak incelenebilir;

/ext/standard/array.c

PHP_FUNCTION(count) teslim olmayan özyinelemeli bu şekilde uygulanan bir dizi: zend_hash_num_elements() aramalar php_count_recursive() çağırır

ZEND_API int zend_hash_num_elements(const HashTable *ht)
{
    IS_CONSISTENT(ht);

    return ht->nNumOfElements;
}

Gördüğünüz gibi, O(1) $mode = COUNT_NORMAL için.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Adam Washington

    Adam Washing

    12 Mayıs 2006
  • steven johns

    steven johns

    11 Mart 2011
  • wowchick16

    wowchick16

    17 Mart 2007