- ベストアンサー
PDF化処理の処理時間 他
有識者の方、教えてください。 現在、文書管理システム設計中です。 ある複数の文書をPDF化する処理を一括処理(バッチ処理)で行うことを考えていますが、処理時間をどの程度見込めばよいか、なかなかわかりません。 1文書(A41枚程度)を1PDFファイル化するのに、どの程度時間がかかるのか、計算する方法はありますでしょうか。 複数の文書を1PDFファイル化するのと、1文書を1PDFファイル化するのとでは、処理時間に差があるのでしょうか。 また、一括処理を行うサーバ(バッチ処理サーバ)のスペックをどのように考えたらよいかもわからないので、もしもわかるようでしたら、あわせて教えてください。 一括処理として、最大の処理としては、1回あたり3万ファイルです。 ・・・参考となるHP等でも良いので、教えていただければと思います。 質問の仕方があまりよくないかもしれませんが、ご回答よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
PDFを生成する方法は、いろいろありますが、こういった問題は例えば使用する言語、ライブラリやツール、生成する文書の複雑さやオーバレイ類の使用の有無、1文書辺りのデータ量なんかによって、大きく格差が出るので、参考になるような情報を提供するのは、非常に難しいんですよね。市販のミドルウェアなんかを使用するなら、さらに性能はブラックボックスでしょう。 A41枚といっても、平均100字程度の文書なのか、びっしり入っているのか、罫線が多いのか少ないのか等、一概に言えるものでは無いと思います。 文書管理ではありませんが、結果的にPDFを出力する系のシステム開発には2回ほど関わったことがあるんですが、その経験を持って、質問者さんの参考になるような情報は、残念ながら提供できません。というか前提を無視して、そんなデータを提示すること自体が無責任な行為だと思います。 私が担当する場合は、何もPDF化に限らず、必ず試験的にテストモジュールを作成して実測します。ライブラリによっても速度や実現可能なことが違ってきますし、何より信頼がおけるデータになりますから、作ってみたらあれれ?っていうケースが少なくなります。ある程度要件が見えているなら、一番複雑でデータ量が多いケースをピックアップして、テストケースにすれば、かなりいい感じのデータになるはずです。 1回3万ファイルといえば、相当な文書量ですよね。 私なら人に聞いた参考データ等を前提にして、設計なんて怖くてちょっとできません。もちろんそれが前提が明確で、どのような文書をどういった環境で処理したか等、帳票の原稿なども伴った具体的なデータであれば、それなりに参考になりますけどね。 ぜひ、簡単なものでいいので、テスト用モジュールを開発することをお薦めします。今後要件が変わったときにも、再度確認する為にだって使えますし、後々のリスクを回避する意味では非常に有用です。 そして、手元にある環境でテストしておけば、新たに導入するサーバがそれより低いスペックになるはずもないので、本番モジュールで処理が複雑化したとしても、大きく遅延する心配もいらないはずです。 PDF化は、一般的には比較的重い処理に分類されると思います。 あまりあてにならない数値を元にして、3万ファイル実際に処理した際に、大きく時間が食い違うのは非常にまずいはずです。 前提を夜間バッチだとして、処理に許される時間を0時~7時の間としましょう。 3600秒 x 7 = 25200秒 逆算すると、1文書1秒かかってしまったら、かなり時間オーバーですね。 しかし、これは処理を並列化することができれば、単純割り算にはならないものの、かなり短縮することができます。ただし並列化した場合、仮に処理事態が速くなっても、ディスクI/Oがボトルネックになってしまう可能性も考慮に入れなければなりません。 しかし、最初から時間がかかることが分かっているバッチは、こうやって単位辺りの処理時間の目標を立てれば、設計もしやすいというものです。 この前提の場合は、テストモジュールで目指すのは、平均1文書0.5秒くらいで処理を完了するか、並列化して30%程度全体の時間が短縮できることですね。 要件が決まっていて、いずれにしてもやらなければならない事なのであれば、こうやって仮の目標値を設定してテストを行い、データに従って設計していくのが一番いいかと思います。 直接的な回答で申し訳ありませんが、ご参考になれば幸いです。
その他の回答 (1)
- makoto44
- ベストアンサー率27% (18/66)
私の経験で書きますので、参考にならないかもしれません。 Web系の基幹システムを構築し、初めは帳票をPDFで表示するように設計し、運用を開始したのですが、当初考えていたよりPDFへの処理を行う時にWebサーバーへのメモリ負荷が高く、Print Pro for Web(http://www.jbcc.co.jp/products/jbcc_soft/ps/pp/for_web/index.htm)と言うソフトを導入しました。 これは、クライアント側で処理を行うので、サーバーへの負荷は減り、電子文書での保存を行なう場合は、別途Acrobatを使用するように致しました。 ちなみにWebサーバーのスペックは、 CPU:PentiumIII-1.2GHz メモリ:1024MB ちなみにPDFへファイル化するのに5~10秒で処理するように設計しました。 が、複数枚になると処理時間は伸びました。 文書管理システムを構築されるとの事ですので、私が携わったものでは参考になりませんね。 せっかく書いたので、投稿します(苦笑)
お礼
ご回答ありがとうございます。 やはりPDF化には時間がかかるんですね。 がんばって、検討してみます!
お礼
いろいろと教えていただきありがとうございました。 試行錯誤しながら、がんばります!