SORU
3 ŞUBAT 2010, ÇARŞAMBA


Nasıl bellek ayak izi (size) bir değişken belirlenir?

PHP (veya bir PHP uzantısı) bir işlevi ne kadar belirli bir değişken kullanır bulmak için? sizeof bana unsurları/özellikleri sayısını söyler.

EDİT: memory_get_usage benim bellek boyutu tarafından kullanılan verir yardımcı olurtümscript. Bir şekilde tek bir değişken için bunu yapmak için var mı?

CEVAP
3 ŞUBAT 2010, ÇARŞAMBA


Tek bir değişken bellek kullanımını almak için doğrudan bir yol yok, ama Gordon önerdiği gibi, memory_get_usage kullanabilirsiniz. Bu geçici bir çözüm ve tedbir kullanım önce ve sonra tek bir değişken kullanımını almak için kullanabilirsiniz, böylece toplam bellek miktarını tahsis dönecektir. Bu biraz hacky, ama çalışması gerekir.

$start_memory = memory_get_usage();
$foo = "Some variable";
echo memory_get_usage() - $start_memory;

Bu hiçbir şekilde olduğunu unutmayın güvenilir bir yöntem, bu sadece bir yaklaşım olarak kullanılmalıdır başka bir şey değil, değişken atarken hafıza dokunduğundan emin olamazsın.

Aslında fonksiyon içinde değişken bir kopyasını oluşturma ve kullanılan bellek ölçerek bir işlev için açabilirsiniz. Bu test değil, ama prensip olarak, bunda yanlış bir şey görmüyorum:

function sizeofvar($var) {
    $start_memory = memory_get_usage();
    $tmp = unserialize(serialize($var));
    return memory_get_usage() - $start_memory;
}

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • gamingbits

    gamingbits

    2 Mayıs 2006
  • graham025

    graham025

    25 NİSAN 2006
  • Juan Carlos Candela Bordera

    Juan Carlos

    4 Mart 2009