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

  • CNNMoney

    CNNMoney

    16 Kasım 2006
  • ShayLoss

    ShayLoss

    5 Kasım 2009
  • UKF

    UKF

    2 Aralık 2009