Adobe Reader X が不安定になる問題について
Adobe Reader Xをインストールしたら
Adobe Readerの更新をつい先日行い、Adobe Reader 9からAdobe Reader X (Adobe Reader 10)にしたところ、うまく動作しない(不安定)であることに気がつき、簡単にチェックしてみた。
WinShellからうまく呼び出せない
アップデートしたことにより、Adobe Readerへのパスが
C:\Program Files (x86)\Adobe\Reader 9.0\Reader\AcroRd32.exe
から、
C:\Program Files (x86)\Adobe\Reader 10.0\Reader\AcroRd32.exe
に変わってしまったため、WinShellの設定をそれに合わせて変更しました。そして、WinShellのPDF Viewを実行するっと、Adobe Readerは確かに起動するのですが、一向に肝心の.pdfファイルが開かれません。そして、Adobe Readerには何も変化は起こらず、最終的に
Cannot start AcrobatReader or open the document. P`lease check on the exe file and cmd line of the PDFViewoptions.
と表示されていまいました。
なにかオプションが間違っているのかと思いましたが、Adobe Readerのオプションに該当するようなものはなく、困ってしまいました。
そこで、WinShellの公式ページを探してみると、フォーラムに「PDFView error with Adobe Reader X」という質問がありました。 これによると、「WinShell 3.3.2.3では解決済みである」ということがわかります。
そして、もう少し調べると、解決前のバージョンでも、次のようにすれば問題がないと言うことが分かりました。
プログラム名:PDFView
exeファイル名:cmd.exe
コマンドライン:/c start "C:\Program Files (x86)\Adobe\Reader 10.0\Reader\AcroRd32.exe" "%s.pdf"
(「PDFLaTeXを先に実行」をチェックしない)
一瞬コマンドプロンプトが表示されてしまいますが、こうすることでちゃんとpdfファイルをWinShellから開くことが出来ます。
プロセスが大量発生する
PDFファイルをAdobe Reader Xで開いてみます。すると、Windowsタスクマネージャによれば、「AcroRd32.exe」のプロセスが二つ起動します。片方のプロセスには「--channel」オプションと「--type=renderer」オプションが付いているため、pdfの読込と描画を別プロセスが担当しているのかな、と思います。これ自体は別に問題ありません。
今開いたPDFファイルを開いたまま別のPDFファイルを開いてみます。すると、ここでも同様に二つのプロセスが起動します。
そして、今開いた(二番目に開いた)ほうのPDFファイルを閉じます。すると、なぜかプロセスが減りません。つまり、合計4つのプロセスが4つのままなのです。普通に考えて、後から起動した2プロセスは終了していてしかるべきです。
さらによくよく見てみると、その終了しないプロセスの「--channel」オプションが付いた方のプロセスが、CPUを50%(デュアルコアの片方のコアを丸ごと)使用してしまっているのです。
この時点で、4つのうちこのプロセスだけスレッド数が2で、他は7(or8)です。このことから、おそらく終了できないスレッドが残ってしまったのだと思われます。そしてこのまま延々と終了してくれません。1つめに開いたpdfがまだ開きっぱなしなので、それを終了することは出来るのですが、やはり先に終了したほうのプロセス二つは終了せずに残ってしまいます。
このように、pdfファイルを開いたり閉じたり繰り返すと、終了できなくなったプロセスが大量発生してしまいます。そして、全部のAdobe Readerのウィンドウを閉じたとしても、その大量のプロセスが生き残ってしまい、CPUとメモリ資源を使い続けます。
対策?
いまのところ、全く対策方法が分かりません。その場しのぎで、pdfを読むときにはChromeで開いていますChromeにドラッグアンドドロップするだけ。Adobe Readerのプラグインを使用せずに、独自のプログラムから表示してくれます(当然機能は見るだけと行った程度ですが)
他の対策として、これまた他のアプリケーションを使うだけですが、Foxit Readerを利用する手もあります。