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

  • BumbleDroid

    BumbleDroid

    18 EKİM 2010
  • Curso Online Gratuito

    Curso Online

    4 Aralık 2011
  • Shameless Maya

    Shameless Ma

    24 Mayıs 2012