Bellek sızıntılarını durdurmak ve performansını artırmak için en iyi uygulamalar

2 Cevap php

Basitçe söylemek gerekirse ben oldukça yeni bir PHP coder değilim ve herkes kod performansını artırmak hem de bu sinir bozucu bellek sızıntılarını durdurmak için en iyi yolu doğru kılavuz beni eğer ben merak ediyorum, benim ana APC yok olanlar biridir veya yüklü gibi yani tüm olmak elle kodlanmış-_-olurdu

2 Cevap

Ben (nesneler veya dizeleri elden unutmak gibi) sıradan bellek sızıntıları PHP yaygın olduğunu sanmıyorum, ama genel olarak kaynak sızıntı vardır. Ben ile ilgili sorunlar yaşadım:

  • veritabanı bağlantıları - Eğer gerçekten pg_close / mysql_close / vb aramalısınız Eğer bağlantı bittiğinde. Ben PHPs bağlantı havuzu bu azaltan (ama kendi sorunları olabilir) düşünüyorum rağmen.

  • Görüntüleri - görüntüleri açmak veya oluşturmak için gd2 uzantısını kullanmak, aksi takdirde onlar sonsuza kadar bellek işgal edeceğiz, çünkü, sen, image_destroy bu gerekir. Ve görüntüleri veri boyutu bakımından büyük olma eğilimindedir.

Lütfen komut olarak saf CGI (hayır HTTP sunucusu modüller) çalıştırırsanız komut çıkar, o zaman kaynakların da etkin bir şekilde temizlenmelidir unutmayın. Ancak hala, özellikle tek bir komut yürütme birçok manipülasyonlar yapmak için nadir değil görüntülerin durumunda, betiğin çalışması sırasında bellek sorunları olabilir.

Genel olarak, php scriptler bellek sızdırıyor olamaz. Php çalışma zamanı, komut için tüm belleği yönetir. Script kendisi, bellek sızıntısı olabilir, ancak php işlemi sona erdiğinde bu geri alınacaktır. Php ağırlıklı http-istekleri işleme ve bunlar genellikle çok kısa bir süre için çalıştırmak için kullanılan bu yana bellek devam biraz sızıntı varsa, bu olmayan bir konu yapar. Eğer http olmayan görevler için php kullanmak Yani eğer bellek sızıntıları sadece gerçekten endişe gerekir. Performans bellek kullanımı daha sizin için büyük bir endişe olmalıdır. Kodunuzu profile gibi xdebug gibi bir araç kullanın.