TCPDF в два раза медленнее, чем FPDF с тем же кодом

В настоящее время я использую FPDF для создания довольно сложных отчетов и пытаюсь перейти на TCPDF, но я обнаружил, что мой же код, работающий через TCPDF, примерно в два раза медленнее. Поскольку мои PDF-файлы уже занимают до минуты, я не могу позволить себе это замедление, но мне бы очень хотелось воспользоваться некоторыми функциями TCPDF (например, создавать закладки).

Если у кого-то есть какая-то информация по этой проблеме, я бы очень признателен за то, что вы сделали, чтобы TCPDF ускорился или просто подтвердил, что он работает медленнее FPDF, поэтому я могу забыть об этом и просто придерживаться FPDF.

Вот сладкое решение, бьет 2 минуты для меня. PDF-файлы создаются за 3 секунды!

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

замещать

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

с этим:

 / 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

По умолчанию TCPDF позволяет подмножества шрифтов уменьшать размер встроенных шрифтов Unicode TTF, этот процесс, который очень медленный и требует большой памяти, может быть отключен с помощью метода setFontSubsetting (false);

Это было реальное решение для меня.

Начиная с версии 5.9.067 производительность TCPDF значительно улучшилась. Кажется, что каждый новый релиз работает лучше. Кроме того, вы можете настроить его для повышения производительности, как описано в http://www.tcpdf.org/performances.php

Производительность TCPDF может быть настроена путем отключения неиспользуемых функций в файле конфигурации и отключения медленных функций, таких как подмножество шрифтов. Используя только основные шрифты (например, Helvetica, Times, …) в режиме, отличном от UTF8, вы можете получить хорошие результаты. Кроме того, вы можете установить XCache на свой сервер, чтобы повысить производительность PHP. Для получения дополнительной информации посетите официальный сайт http://www.tcpdf.org и форумы.