SORU
19 Mayıs 2009, Salı


PHP bellek profil oluşturma

Sayfanın PHP bellek kullanımı profil için iyi bir yolu nedir? Örneğin, ne kadar veri aramaları işlevi kullanarak, ve/veya olduğunu görmek için en fazla bellek tahsis edilir.

  • xdebug profilleme özelliği hafıza bilgi vermek için görünmüyor.

  • xdebugyokizleme özelliği bunu sağlar. Bu her bir işlev çağrısı için bellek deltalar gösterir beri veri miktarına ezici dışında istediğim çok yakın. Eğer bazı GUI aracı ile belli bir derinliğe aşağıda, belki çağırır gizlemek mümkün olsaydı, bu benim sorunumu çözer.

Başka bir şey var mı?

CEVAP
21 Mayıs 2014, ÇARŞAMBA


Bildiğiniz gibi, Xdebug Bellek 2.* beri destek profil düştü sürüm. Fonksiyonlar string burada: http://www.xdebug.org/updates.php . kaldırıldı arayın lütfen

Fonksiyonlar kaldırıldı

Bellek için kaldırıldı destek olarak profil düzgün işe yaramadı.

Başka bir araç denedim ve benim için işe yaradı.

https://github.com/arnaud-lb/php-memory-profiler

Bu benim Ubuntu server etkinleştirmek için yaptıklarım

sudo apt-get install libjudy-dev libjudydebian1
sudo pecl install memprof
echo "extension=memprof.so" > /etc/php5/mods-available/memprof.ini
sudo php5enmod memprof
service apache2 restart

Ve benim kod:

<?php

memprof_enable();

// do your stuff

memprof_dump_callgrind(fopen("/tmp/callgrind.out", "w"));

Sonunda KCachegrind 7 *dosyayı açın

Kullanarak gperftools (tavsiye!) Google

Öncelikle yükleyinGoogle gperftoolsburada en son paketi indirerek: https://code.google.com/p/gperftools/

Sonra her zaman olduğu gibi:

sudo apt-get update
sudo apt-get install libunwind-dev -y
./configure
make
make install

Kodunuzu şimdi:

memprof_enable();

// do your magic

memprof_dump_pprof(fopen("/tmp/profile.heap", "w"));

Terminal açın ve başlatın:

pprof --web /tmp/profile.heap

pprofaşağıda gösterildiği gibi bir şey ile mevcut tarayıcı oturumunda yeni bir pencere oluşturur:

PHP memory profiling with memprof and gperftools

Xhgui (bence en iyisi hem cpu ve memory profile) Xhprof

İleXhprofveXhguicpu kullanımı da profil veya sadece o anda senin sorunun eğer bellek kullanımı. Çok komple bir çözüm olduğunu, size tam kontrol verir ve günlükleri sistemlerinde mongo üzerinde iki ya da yazılı olabilir.

Daha fazla detay see my answer here için.

Blackfire

Blackfire olduğunu SensioLabs tarafından bir PHP profiler, Symfony2 çocuklar https://blackfire.io/

Eğer puphpet desteklenen olduğunu bilmek sizi mutlu edecektir sanal makine kurmak için kullanıyorsanız ;-)

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Elly

    Elly

    3 EKİM 2005
  • IGN

    IGN

    19 EYLÜL 2006
  • MikeyMacintosh

    MikeyM

    28 Aralık 2009