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

  • CommonArtisan

    CommonArtisa

    7 Temmuz 2012
  • happyjpy

    happyjpy

    22 AĞUSTOS 2009
  • TokShogun

    TokShogun

    6 HAZİRAN 2009