我審查類似的問題,但沒有找到解決我的問題代慢PDF(Yii框架)
環境中使用我們的網絡項目:
- 列表項
- Yii框架(Zend引擎V2.3.0)
- PHP 5.3.8
- 服務器操作系統Fedora15的
- 的Java 1.6.0_22
- 阿帕奇蠟染1.7的java lib中
- 的libpng 2:1.2
我們的項目產生dynamicaly PDF文檔(使用Zend全文類)。
PDF生成需要AROUT 〜10秒完成約頁,其中包括2 PNG圖像(圖表上SVG格式和java在POST數據發送轉換他(SVG)至PNG圖像;上網絡圖表由高圖js-lib生成,png)。
我們需要加快生成過程。
的我們的代碼某些部分:
public function actionQuery()
{
...
$xxExporter->generatePdf($request, $someAdditionalData);
...
$xxExporter->httpOutputFile();
...
Yii::app()->end();
}
public function generatePdf(CHttpRequest $request, array $someAdditionalData)
{
initRequest($request, $someAdditionalData);
...
...attachItemToPdf..
...
setMetaData
...
}
public function httpOutputFile()
{
$this->pdf->save($filename);
header("Content-Disposition: attachment; filename=\"{$this->filename}.pdf\"");
header("Content-type: application/pdf");
header("Content-length: " . filesize($filename));
echo file_get_contents($filename);
unlink($filename);
}
轉換SVG與Java巴布亞新幾內亞:
$type = "-m {$this->fileType}";
$width = !empty($this->fileExportWidth) ? "-w {$this->fileExportWidth}" : '';
$outputFile = "-d {$this->fileExportTempName}";
$inputFile = $this->fileTempName;
$errorString = exec("{$this->pathJava} -jar {$this->pathBatik} {$type} {$outputFile} {$indexed} {$width} {$inputFile}", $output, $return_var);
明天我會嘗試安裝一些JPG-lib添加到服務器,並嘗試更換PNG至JPG在項目中。
如果你需要一些額外的信息 - 讓我知道,我把它給你。
有人可以幫助我嗎?我真的不知道該怎麼做,我嘗試了我所知道的一切。
非常感謝您的任何幫助或建議!
你應該更多地分析它,看看哪些是緩慢的過程,如果圖像轉換或PDF創建;您可能還想使用較少的數據測試兩個進程,以查看問題是否存在。 –
我在導出功能中發現麻煩部分:我有2個圖表,他們生成速度很慢,大約3秒 – itspoma