DOMPDF bellek sorunları

3 Cevap php

Ben bir komut dosyası yaklaşık 500 raporlar oluşturmak için dompdf kullanıyorum. Yaklaşık 10-15 PDF'leri oluşturulan edilmiştir sonra bellek tükeniyor.

O 8m o yazı tipi yükleme şeyler alır her zaman yüklüyor gibi hata ayıklama, görünüyor, ama bu yazı önbelleğe kodu ile ele alınması gereken bir şey gibi görünüyor.

Herhangi bir yanlış burada neler oluyor fikir? Ben basit bir kod parçacığını göndermek istiyorum, ama bunun çoğu çoklu katmanlar halinde soyutlanmış, bu yüzden sadece basit bir kopyala / yapıştır değil.

3 Cevap

Bu sadece almak uzaktan ticari bir şey için ilk ise Prince XML. Bu PDF çözüm için başka bir HTML önemli ölçüde daha iyi ve daha hızlı (ve ben hepsini baktım). Maliyeti hızlı bir şekilde kaydedilmiş geliştirici zaman içinde telafi edilecektir.

İkincisi, hızlı solüsyon herhangi bir bellek sızıntısı sorunları çözmek için ayrı bir işlemde her iki raporu yazdırmak için muhtemelen. Bu komut satırından çalışıyorsa dış döngü her rapor için bir süreç başlayacak, bir kabuk gibi bir şey var. Bu Web çalıştırmak eğer yapabileceğiniz bir işletim sistemi üzerinde iseniz her komut için bir süreç çatal.

Convert HTML + CSS to PDF with PHP? bir göz atın.

Cletus tarafından belirtildiği gibi, DOMPDF ile sizin için en hızlı çözüm muhtemelen ayrı bir işlemde her rapor render olacak. Sen gerçek yansımasını gerçekleştirir (exec kullanarak) bir çocuk komut dosyasını çağıran bir ana komut dosyası yazabilirsiniz. Eğer DOMPDF destek grubunda this discussion gördüğünüz gibi, performans artırmak biraz sağlamak potansiyeline sahip görünmektedir.

Bu sorunu gösteren örnek bir çeşit olmadan bellek kullanımı ile ilgili aksi neler söylemek zor. Ben çok DOMPDF optimizasyon ve tek bir komut dosyası birden fazla örneğini render motoru underlaying CPDF olduğunu inanmıyorum. Yani yazı muhtemelen verileri önbelleğe bir statik değişkeni kullanabilirsiniz olsa bile, belleğe her zaman yüklenen ediliyor.

Eğer 0.6 beta DOMPDF kullanıyorsanız, bellek hata tabloları işlerken DOMPDF girdiği sonsuz bir döngüye sonucudur. Bu benim çözmek mümkün olmamıştır bilinen bir sorundur.

İlgili URL'ler:

http://code.google.com/p/dompdf/issues/detail?id=34 http://code.google.com/p/dompdf/issues/detail?id=91