Aynı kod ile FPDF olarak iki kat yavaş TCPDF

2 Cevap php

Şu anda bazı oldukça karmaşık raporlar oluşturmak için FPDF kullanmak ve TCPDF yükseltmek için çalışıyorum, ama ben TCPDF akan benim aynı kodu iki kat yavaş olduğunu tespit ettik. Benim PDF'leri zaten oluşturmak için bir dakika kadar sürebilir, çünkü ben gerçekten bu yavaşlama göze alamaz, ama ben gerçekten (Yer imleri oluşturma gibi) bazı TCPDF özelliklerinden yararlanmak istiyorum.

Ya TCPDF daha hızlı yapmak için yaptığı şeyleri, ya da FPDF daha yavaş çalışır bu sadece onay, bu yüzden unutun ve sadece FPDF sopa ile - herkes bu sorunla ilgili bazı bilgiler varsa ben gerçekten takdir ediyorum.

2 Cevap

Burada tatlı bir çözüm, benim için 2 dakika tıraş eder. PDF'leri 3 saniye oluşturulur!

http://www.bitrealm.net/2010/08/tcpdf-is-slow-here-is-the-solution/

Değiştirmek

$font = $this->_getTrueTypeFontSubset($font, $subsetchars);

Bu ile:

/ Alcal: $font2cache modification
// This modification creates utf-8 fonts only the first time,
// after that it uses cache file which dramatically reduces execution time
if (!file_exists($fontfile.'.cached')){
// calculate $font first time
$subsetchars = array_fill(0, 512, true); // fill subset for all chars 0-512
$font = $this->_getTrueTypeFontSubset($font, $subsetchars); // this part is actually slow!
// and then save $font to file for further use
$fp=fopen($fontfile.'.cached','w');
$flat_array = serialize($font); //
fwrite($fp,$flat_array);
fclose($fp);
}
else {
// cache file exist, load file
$fp=fopen($fontfile.'.cached','r');
$flat_array = fread($fp,filesize($fontfile.'.cached'));
fclose($fp);
$font = unserialize($flat_array);
}

http://www.tcpdf.org/performances.php

Varsayılan TCPDF gömülü Unicode TTF yazı tipi boyutunu azaltmak için font altkümesi sağlayan tarafından, bu süreç, çok yavaş ve bellek bir sürü setFontSubsetting (yanlış) yöntemi kullanılarak kapatılabilir gerektirir;

Bu benim için gerçek bir çözüm oldu.