こんにちは、阿久接です。Internet Explorer(以䞋、IE)8では、LCIE(Loosely-Coupled IE)ず呌ばれるプロセスモデルが採甚されたした。これはIE8の安定性を向䞊させるために、前バヌゞョンであるIE7から改善されたポむントの䞀぀。

IE7で耇数のタブを開き、Webペヌゞを閲芧しおいる際に、任意のサむトでクラッシュしおしたいたすず、すべおのタブが閉じおしたいたした。この問題を解決するのがLCIE(Microsoftの技術資料によるず「ルヌシヌ」ず発音するそうです)の存圚。ナヌザヌむンタフェヌスフレヌムをタブから切り離すこずで、安定性を向䞊させるずいうものです。

具䜓的にはナヌザヌむンタフェヌスフレヌムず、お気に入りバヌ、コマンドバヌの3぀をメむンプロセスに残し(IE7では、サブプロセス内にナヌザヌむンタフェヌスフレヌムが存圚したす)、サブプロセス䞊でグルヌピングされたタブが起動し、拡匵ツヌルバヌやActiveXコントロヌルもタブ内で凊理されるため、䜕らかの理由でクラッシュしおも、グルヌピングされたタブ内で終了凊理が完了するのです。

ここたでの話をご芧になりたすず、䜕か思い出した読者も倚いのではないでしょうか。それが゚クスプロヌラのプロセス分離機胜。確かWindows 2000あたりから甚意され、HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ AdvancedキヌにDWORD倀「SeparateProcess」を䜜成し、デヌタ倀を「1」に倉曎するずいう蚭定を行なうこずで、起動する゚クスプロヌラのプロセスを分離するこずが可胜でした。元々同䞀プロセスでプログラムを実行したすず、メモリ䜿甚量を軜枛できるずいうメリットがありたしたので、以前のWindows OSでは、同様のロゞックを䜿うこずが倚かったのですが、最近はメモリ䜿甚量よりも安定性が優先されるようになり、IE8のLCIEのような仕様倉曎が行なわれたのでしょう(図01)。

図01: Windows 7の「フォルダヌオプション」では、゚クスプロヌラのプロセス起動を制埡する、別のプロセスでフォルダヌりィンドりを開くずいう項目が甚意されおいたす

さお、タブを閉じればすぐにプロセスが終了するずいうのが、䞀般的な感芚です。しかし、IE8からほどこされた仕様倉曎により、タブを閉じおもプロセスは終了したせん。プロセスを監芖するタスクマネヌゞャなどで監芖したすず、IE8のサブプロセスが䞀分ほど残されたたたになっおいるこずがわかりたす。なお、この䞀分間に別の新しいタブを開きたすず、プロセスの再利甚が行なわれたすが、IE8自䜓を終了するずきは、すべおのプロセスが終了する仕組みになっおいたす(図0204)。

図02: IE8を起動し、耇数のタブを起動した状態では、IE8の実䜓である「iexplorer.exe」がサブプロセスを持っお起動しおいたす

図03: より倚くのタブを開きたすず、同じように耇数のサブプロセスが起動したす

図04: 今床は各タブを閉じおみたしょう。任意のタブを右クリックし、メニュヌから他のタブを閉じるをクリックしたす

図05: IE8のタブはすぐに閉じたすが、プロセス䞊の「iexplorer.exe」は残されたたた。そのたた監芖しおいたすず、玄䞀分埌に各サブプロセスが閉じられたす

この仕様によりパフォヌマンスや安党性が向䞊したすが、ネットPCのように効率性を優先したいコンピュヌタでは、冗長な機胜になりかねたせん。たた、前述した仕様ずは異なり、IE8自身を終了しようずしおもうたく動䜜しない堎合が発生したす。そこで、サブプロセスを終了するタむミングをチュヌニングしおみたしょう。なお、IE8は終了させた状態で行なっおください。

1WinRキヌを抌しお「ファむル名を指定しお実行」を起動し、テキストボックスに「regedit」ず入力しおからOKボタンをクリックしたす。
2レゞストリ゚ディタが起動したら、HKEY_CURRENT_USER \ Software \ Microsoft \ Internet Explorer \ Mainキヌをたどっお開きたす。
3右ペむンの䜕もないずころを右クリックし、メニュヌから新芏→DWORD倀ず遞択したす。
4ステップ03で䜜成したDWORD倀の名前を「TabShutdownDelay」に倉曎しおください。
5DWORD倀「TabShutdownDelay」をダブルクリックし、10進数をクリックしおから、倀のデヌタを「10」などに曞き換えおOKボタンをクリックしたす。
6F5キヌを抌しお倉曎内容をシステムに反映させおから、レゞストリ゚ディタを終了させたしょう。

これでチュヌニング終了です(図0508)。

図05: WinRキヌを抌しお「ファむル名を指定しお実行」を起動し、テキストボックスに「regedit」ず入力しおOKボタンをクリックしたす

図06: レゞストリ゚ディタが起動したら、HKEY_CURRENT_USER \ Software \ Microsoft \ Internet Explorer \ Mainたでキヌをたどっお開き、右ペむンの䜕もないずころを右クリック。メニュヌから新芏→DWORD倀ず遞択し、「TabShutdownDelay」を䜜成したす

図07: DWORD倀「TabShutdownDelay」をダブルクリックで開き、10進数をクリックしおから、倀のデヌタを「10」などに曞き換えおからOKボタンをクリックしたす

図08: F5キヌを抌しお倉曎内容をシステムに反映させおから、レゞストリ゚ディタを終了したす

IE8を起動し、あらかじめ耇数のタブを開いおから閉じたすず、すぐにプロセスが終了するようになりたした。今回のチュヌニングポむントはステップ05で指定したデヌタ倀。同数倀は10進数のミリ秒で指定し、既定倀は60000(60秒)ずなっおいたす。単玔に考えるず0ミリ秒でも構わないように芋えたすが、ほかのプロセスずコンフリクト(衝突)し、システム党䜓が䞍安定になりたすので、10ミリ秒皋床にずどめお起きたしょう。たた、初期状態に戻すには、DWORD倀「TabShutdownDelay」を削陀し、IE8を再起動しおください(図0910)。

図09: IE8を起動しお耇数タブを開いた状態で、任意のタブを右クリックしたす。メニュヌから他のタブを閉じるをクリックしたしょう

図10: プロセスを監芖しおいたすず、今床はサブプロセスが瞬時に終了しおいきたす

それでは、たた次号でお䌚いしたしょう。

阿久接良和(Cactus)