- - PR -
Celeronマシンで、Pdf.ocxの呼び出し/破棄に時間がかかる現象について。
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-06-15 17:56
いつもお世話になっております。
発生条件として確定的な現象ではなくて申し訳ないのですが、相談させてください。 ActiveX(具体的にはPdf.ocx)をWindowsフォームに貼り付けてPDFの表示を行っておりまして、以下の2点の問題が起こっております。 1.読み込み時に、マシンによってAcrobat Readerのスプラッシュウィンドウ(APIを読み込んでるあたり)でほぼフリーズしたような状態になる現象が起こることがある。(その場合、スプラッシュウィンドウの終了まで大体30秒〜2分かかる) 頻度はわりと高く、マシンログオン後の初回にはほぼ必ず発生。 2.そのフォームをアンロードする際に、マシンによって異常にPdf.ocxのDisposeに時間がかかることがある。(平均15秒程度〜長くて40秒程度かかる) 頻度はかなり高い。発生しなくなるとしばらく発生しない事もある。 上記現象発生中はCPU使用率が100%になります。メモリは全然空きのある状態です。 同じアプリケーションを、OSレベルより上の環境としては同じ環境で実行しているにもかかわらず、発生するマシンと発生しないマシンがはっきりわかれるため、環境的な要因と考え、いくつかデータを取って見ましたが、どうもCPUがCeleronのマシンで発生しているようでした。 (開発環境はPentiumメインで、顧客環境がCeleronメインだったため、発覚が遅れてしまいました。) コーディングとしては、読み込み時にはフォームに貼り付けてあるPdfコントロールでLoadFileメソッドを使ってファイルを読み込んでいるだけで、終了時にはフォームのCloseメソッドを呼び出しているだけのシンプルなものです。 ネットであちこち調べてみましたが、同様の現象は報告されていないようでした。 現在、1の回避策としては、先にAcrobatReaderをこっそり立ち上げておくとか、そんな事を考えていますが、2は全く思いつきません。 もし、何か回避策、対応方法などがございましたら、ご意見をいただけると非常にありがたいです。 ちなみに、ですが、ファイル指定してProcess.StartなどでAcrobatReaderから直接開くというのは、このアプリケーション自体が画面を最前面表示をしなければならないという仕様上、回避策になりません。。。 また、Celeronで発生するというのは計測結果からの推測でしかないのですが、これをもし裏付けるとしたら、どのような方法があるでしょうか。 よろしくお願いします。 開発環境: .NET Framework 1.1 VisualStudio 2003 Enterprise Edition 使用言語はVB.NET。 Pdf.ocxはAcrobatReader 6.0.3のものを使用しています。 | ||||
|
投稿日時: 2005-06-15 18:14
あくまで「CPUの違いが原因」という仮定を基にした推測(憶測)です。あしからず。
お使いになってるCeleronでサポートしておらず、かつPentiumでサポートしている拡張命令セットの存在が気になります。 でも、「Pentium」「Celeron」としか記述なさっていない為、 いつの時代のPentium,Celeronなのか、SSEサポートされてるのか、 そもそもクロック周波数の違いがあるのかすらさっぱりわかりません。 | ||||
|
投稿日時: 2005-06-15 18:27
ご返答ありがとうございます。
CPUについてですが、そんなに古い時代のものではありません。 Pentiumならば、Pentium4の2.5GHz以上のマシンを使っております。 Celeronのマシンも同じく2.5GHz以上です。 ついでに、どちらもメモリは最低512MB積んでおります。 拡張命令セットについては調べてみたいと思います。 | ||||
|
投稿日時: 2005-06-15 18:58
地味に大きく利いてくるのはFSBです。
CeleronもPentiumもブランド名です。CPUの差を原因として調査するなら、クロック数だけではなく、正確なCPUの型式を把握する必要があるでしょう。 #片方はHS対応だったりするかもしれませんしね。 | ||||
|
投稿日時: 2005-06-16 12:04
Pdf.ocxを直接使うのはadobeさんは勧めていないです。
http://support.adobe.co.jp/faq/faq/qadoc.sv?2566+001 Webbrowserコントロールを使うとか。 http://support.microsoft.com/kb/304643/JA/ | ||||
|
投稿日時: 2005-06-17 14:30
いつもお世話になっております。
投稿者と今同じ業務をこなしている「かえで」と申します。
todo様から提案頂いた【WebBrowserコントロール】でサンプルアプリケーションを作成し、性能検証を行っている最中です。 特に【画面Load時のPDF表示速度】と【画面UnLoad時の処理速度】の2点に重点を置き、 PDF.OCXを用いた場合と比較しております。 検証途中ではありますが、上記2点に関しましてかなりの性能向上が見られます。 またadobeさんも「PDF.OCX を利用した開発に関するサポートを提供しておりません」と言ってますので、【WebBrowserコントロール】で開発を進めようと思っております。 ご指摘してくださった方、大変ありがとうございました。 | ||||
|
投稿日時: 2005-06-17 14:38
先に書かれてしまいましたが、ひとまずWebBrowserコントロールを使って対応する方向で考える事にしました。
みなさん、ありがとうございました。 |
1