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

  • Simon Hayter

    Simon Hayter

    20 HAZİRAN 2010
  • StalkerJS

    StalkerJS

    15 HAZİRAN 2010
  • The CGBros

    The CGBros

    20 AĞUSTOS 2011