2011-01-31 9 views
7

私はFlex AIRアプリケーションでオープンソースのPurePDFライブラリを使用しています。問題はパフォーマンスです。purePDFのパフォーマンスを向上させる方法は?

CPU使用率は100%で、PDFを生成するには時間がかかります。

  • は、私はそれにいくつかの分析を行っていると は、PDF内のテキストの書き込みが高価 であることがわかります。だから私はどのように私が パフォーマンスを向上させることができるかを知る必要があります。 には、 世代の方が安価なフォントがあります。 の処理方法は、 というパフォーマンスの点で、これをより良いものにするための設定やヒントがありますか?

  • 画像の場合ImageElementこの要素をPDFに書き込むには、非常に高価です。処理を減らす方法はありますか?

一方、Iは、フレックスを用いて画像をリサイズした後、画像素子に小さな画像のビットマップデータを渡すことによってImageElement生成処理を減少させる方法を発見しました。それはうまく動作し、私は実行の時間をかなり短縮しました。誰か他の問題についてのアイデアはありますか?

  • チャンクで仕事をしたり、それが完了するまでに時間がかかるかもしれませんが、PDFが生成されている間、GUIをブロックしないように作業を分割するためにPDFを指示する方法はありますか?

ご協力ありがとうございます。

答えて

0

purePDFとPDFの生成を最適化する方法ですCreataによってpurePDFコンポーネントの生成をチャンク単位で分割する画像のサイズ変更によって解決される主要な問題

画像はPDFに埋め込まれるまでに時間がかかり、この処理に要する時間は画像サイズに正比例します。

画像のサイズを小さくしてからPDFに埋め込みます(サイズを大きくすると画像の品質が大幅に低下することに注意してください)。最適なサイズを十分に得るために実験を続けますPDF生成のための品質とスピード。

最後に、白い背景の画像を使用する必要がある場合は、透明処理を必要とするだけで透明画像を避けることです。

0

チャンクで仕事をしたり、それが完了するまでに時間がかかるかもしれませんが、PDFが生成されるまでGUIが停止にしないように作業を分割するためにPDFを伝えるためにどのような方法がある

あなたがスレッドを生成することによって生成非同期を作ることができ...私はフラッシュにそうするようにして作ってみた最良の方法は、コードを使用することです:

import flash.utils.setTimeout; 
import flash.events.Event; 
import flash.events.EventDispatcher; 
... 
    setTimeout(function():void { 
     //TODO asynchronous schtuff 
     dispatchEvent(new Event(Event.COMPLETE)); 
    }, 0); 
+0

質問に記載されているように、私はこれを行うにしても完全なCPUを必要とします。内部的にすべての作業を行うようにpurePDFを処理することは決してできません。 – Badr

+0

purePDFを使っても、 GUIは停止していますか?たとえそれが完全なCPUを使用していても、ファイルを書くようなことをしているのであれば、スレッドは時折停止してGUIスレッドが続行できるはずです... – jswolf19

+0

flexでasycプロセスがスプレッドではないスレッドフレックスはスレッディングもしません。最後にすべてのものがタイムラインのフレームで終わります。フラッシュの原因flexはフラッシュプレーヤーで実行されている最後のフラッシュです.. – Badr

関連する問題