I am porting a large web application to a shvardırd web hosting environment. The app was written in PHP 4. The new environment has PHP 5.2.
Nedense, uygulama PHP 5.2 çalışan bellek muazzam miktarda sızıntı yapıyor. (Bir paylaşımlı ortamda, PHP 4, 12 veya 16 MB ile çalıştırmak için kullanılan sitede çok cömert) 64 MB sınırına ulaşana kadar tam anlamıyla, bellek kullanımı memory_get_usage () kullanarak çatı geçiyor izleyebilirsiniz.
Bu PHP 5 değiştirdi şey, argüman olarak nesne başvurularını büyük olasılıkla işleme bir yan etkisi olduğunu sanıyorum. Ancak, belli bir davranışı (ler) bu neden (ler) kaçak için arama (evet, o benim) uygulama çok karmaşık olduğu gibi son derece zor ve kısmen çok iyi yazılmış değildir.
App paylaşılan bir site alanı üzerine kurulu olduğu, ben (bildiğim kadarıyla) klasik hata ayıklama tesisleri kullanamazsınız. Ben çok çok ben bir süre için bütün gün tam anlamıyla proje üzerinde çalışıyorum gibi, yerel çevreyi yeniden önlemek istiyorum.
Yani benim sorular şunlardır:
Herkes nesnelerin büyük miktarlarda ile ilgili özellikle, tipik PHP4 => 5 geçiş tuzaklar biliyor mu, benim sızıntı neden (ler) olabilir
Biri bana hangi değişkenlerin bellek bu muazzam miktarlarda yiyorsun öğrenmek yardımcı olabilir PHP tarafından kullanılan değişkenler için debugger bağımsız, script-sadece "grafik kapsam dökümü" aracı bir tür biliyor mu?