Bir yöntem takip bellek kullanımı

0 Cevap php

Bunun için zarif bir çözüm bulmak zorunda. Ben işlevini değiştirmeden bellek kullanımını izlemek istediğiniz bir yöntem ile bir sınıf var:

class Example
{
    public function hello($name)
    {
        $something = str_repeat($name, pow(1024, 2));
    }
}

$class = new Example;
$class->hello('a');

Yani görev hello() onunla takılmadan ne kadar bellek kullanır, nedir?

Note:, bu yöntemin bellek kullanımı 1 MB olmalıdır. Ben boşuna memory_get_usage(); ile çağrı sarma denedim:

class Example
{
    public function hello($name)
    {
        $something = str_repeat($name, pow(1024, 2));
    }
}

$class = new Example;

$s = memory_get_usage();

$class->hello('a');

echo memory_get_usage() - $s;

144 bayt (doğru değil tüm) Bu sadece sonuç. Ben ReflectionMethod sınıfını kullanarak yansıma ile büyü çeşitli denedim.

I have a ne yapmam gerekiyor yöntemi farkı hesaplamak olduğunu hissediyor:. (Eğer gerçekten benim gün yapmak istiyorum sonra birisi temiz bir şey aklınıza gelirse.

Edit: Bu bir kıyaslama uygulaması kapsamında olduğunu belirtmek gerekir. memory_get_peak_usage doğru bellek kullanımını döndürür anlamda çalışırken Yani, o da çarpık testleriyle yüksek bellek yöntemin ardından koştu olacaktır. Hafıza istatistikleri sıfırlamak için bir yol vardı Şimdi, eğer o da iyi olabilir.

0 Cevap