Copper PDFの高速処理の秘密は、PDFのように内容が表示順になっていないデータを直列化し、再構築する独自のPDF出力プログラムと通信方式です。処理能力が非常に高いことから1台だけのサーバーでもほとんどの用途には十分ですが、生成途中のPDFを直列化してソケット通信でドライバに渡すため、負荷分散が容易であり、ハードウェアを増設することでどのような過酷な運用にも耐えられるのが特徴です!
このページではCopper PDF 2.1.0のパフォーマンス測定結果を公開しています。使用した環境は次の通りです。
DELL PowerEdge 840 CPU: Intel Xeon X3230 2.66GHz/8MB L2キャッシュ/1.066MHzFSB) メモリ: 4GB OS: Debian etch 4.0r6 (カーネル2.6.26 amd64) Java: Sun JDK 1.5.0_14 64-Bit Server VM 2009年1月現在、30万円未満で購入できる安価なサーバーです。
申請書の出力
某自治体の保有個人情報開示請求書(大抵の自治体にある申請書類です)を10のスレッドで同時アクセスしてそれぞれ100回、合計1000回出力しました。 対象文書 / 処理結果
接続方法 通常のドライバ HTTP/RESTインターフェース 処理時間 12406ms 17006ms 平均レスポンス時間 119.1ms 161.7ms スループット(処理能力) 80.6/s 58.2/s
10人の市民が同時アクセスして毎秒50枚以上の申請書を作成するというのは、まずあり得ないような高負荷ですが、0.1~0.2秒程度で結果を返します。マルチスレッドに対応しているため、特にマルチコアCPUの環境では同時アクセス数が増えてもレスポンスタイムはあまり変わりません。
Copper PDF 2.1からサポートされたHTTP/RESTインターフェースでは、30%程度の速度低下がありますが、実用上は全く問題ありません。
520ページの英文仕様書の出力
W3CのXSL 1.1のドキュメント(図も含まれる大きな技術文書)を1つのスレッドで5回変換しました。 対象文書 […]