Ben bu geldim, ve ben gerçekten Doktrini geniş bellek kullanımı ile yardımcı bulundu teknikleri bir çift var.
1: Mümkünse, Doktrin sorgu için bir dizi aşağı sonuçları hidrat. Örneğin aşağıdaki gibi yapabilirsiniz:
$query = self::createQuery("q")->
...
->setHydrationMode(Doctrine::HYDRATE_ARRAY)
->execute();
Bu büyük nesneleri oluşturmak DEĞİL Doktrini zorlar, ancak bunun yerine bir dizi için azaltır. Açıkçası bunu yaparsanız, size yöntemleri vb aramak için yeteneğini kaybetmek aklınızda, bu yüzden alan değerleri okuma vb için kullanıyorsanız eğer, bu sadece iyi
2: yürütme sonra sonuçları boşaltın. Bu Doktrini dokümanlar küçücük bir alanda belgelenmiş, ama gerçekten ben kullanıyordum ithalat görevi yardım etti:
$query->free();
İşte bu. Ayrıca oluşturduğu tüm dairesel başvuruları kaldırmak için oluşturduğunuz nesneler, örneğin $myObj->free();
ve bu güçler Doktrin yapabilirsiniz. Döngüsel başvurular otomatik olarak PHP kapsamı veya unset()
aracılığıyla itibaren bir nesnenin silinmesi üzerine PHP 5.3 'ten kurtulmuş, ama önce bunu kendiniz yapmanız gerekir unutmayın.
Bunları kullandıktan sonra siliniyor değişkenler de unset()
, aksi dairesel refs açık olmayacak gibi olsa da, belirtildiği gibi yukarıda free()
yöntemi ile birlikte bunu, yardımcı olur.