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.