(Win7 では速いのに Win8.1 / Win10 / Win2012 / Win2016では遅い)
最近よく見かける事象ですが、Win7環境で利用していたThinApp仮想アプリを
Win8.1 Win10 やWin2012R2等の比較的新しい環境で実行すると遅い。
というケースがあります。
Win7では、2秒もかからないのに、新しいOSでは10秒以上かかり
応答なしの空白画面が表示されたりします。
速度が遅くなる原因は多岐に渡りますが、今回投稿する内容に合致するアプリの特徴としては、IEリソースを利用する物となります。
具体的な例としては以下のようなアプリが該当します。
・IEのコンポーネントを利用したブラウザー
・IEを起動する。
・IEのコンポーネントを一部で利用している物
(メーラー等でHTMLメールを表示する部分など)
原因と対策は、以前に投稿した内容を参照して下さい。
「ThinApp で仮想化した SimpleBrowser の起動が Windows8 だけ遅い問題について (COM OutProcess Serverの制御)」
https://tunemicky.blogspot.jp/2013/08/thinapp-simplebrowser-windows8-com.html
対処方法:
対処方法は、4パターンあります。
いずれかの1つの対応を行えば、起動速度の問題は、解消されます。
※4つの対処を全部設定する必要はありません。
パターン1.
方針:遅延の原因になっている、Rundll32.exeを仮想環境(VOS)で動作しないように除外する。
Package.iniファイルに以下を追加します。
[BuildOptions]
ChildProcessEnvironmentExceptions=rundll32.exe ※ChildProcessEnvironmentExceptionsに関しては、こちらを参照ください。
VOS上の仮想プロセスとして、指定したEXEを除外(物理側で実行)する設定値です。
http://tunemicky.blogspot.jp/2012/03/thinapp-47-packageini.html
パターン2.
方針:遅延の原因になっている、COM OutProcess Serverを仮想環境(VOS)で動作しないように除外する。
GUID: {9BA05972-F6A8-11CF-A442-00A0C90A8F39}
Package.iniファイルに以下を追加します。
[BuildOptions]
ExternalCOMObjects= {9BA05972-F6A8-11CF-A442-00A0C90A8F39} ※ExternalCOMObjectsに関しては、こちらを参照ください。
VOS上で指定したGUIDを持つCOM OutProcessの作成を除外(物理側で実行)する設定値です。
http://tunemicky.blogspot.jp/2012/03/thinapp-47-packageini.html
パターン3.
方針:遅延の原因になっている、COM OutProcess 自体を仮想環境(VOS)で動作しないように強制する。
Package.iniファイルに以下を追加します。
[BuildOptions]
VirtualizeExternalOutOfProcessCOM=0※VirtualizeExternalOutOfProcessCOMに関しては、こちらを参照ください。
VOS上でCOM OutProcessの作成を除外(物理側で実行)する設定値です。
パッケージに含まれているCOM OutProcess 自体は、仮想環境で動作する。
今回のGUIDは、物理側のみに存在している。
http://tunemicky.blogspot.jp/2012/03/thinapp-47-packageini.html
パターン4.
方針:遅延の原因になっている、COM OutProcess 自体を仮想レジストリの変更により動作しないようにする。
HKEY_LOCAL_MACHINE.txtファイルに以下を追加します。
isolation_writecopy HKEY_LOCAL_MACHINE\Software\Classes\CLSID\{9BA05972-F6A8-11CF-A442-00A0C90A8F39}\LocalServer32
Value=
REG_SZ~#2300