Visual Studio2005、.NetFrameWork2.0、64ビットで開発をしております。
開発しているプログラムにはVisual Basic6.0からバージョンアップしたプロジェクト(A)と
VisualStudio2005で新規に開発したプロジェクト(B)が存在します。
双方とも同じサードパーティ製コントロールを使用しています。
AとBは画面構成も似ており、コントロール数や内部ロジックも似たような処理をしています。
2本のAPの初期起動(InitializeCompornentの実行時間)で A=20秒 B=6秒といった差があります。
質問①:AとBの違いを調査し、Aはアプリケーションフレームワークを有効にする、がFalseになっていました。
これをTrueにする事でAの速度が10秒ほどに改善されました。
この調査の際、Processmonitorというツールで以下の事が分かりました。Aにおいて、
あ)アプリケーションフレームワークを有効にする=FALSEの状態だとComctrl32.dllに13万回ほどのアクセスがある。
い)アプリケーションフレームワークを有効にする=Trueの状態だと、18回のアクセスのみとなる。
あ)でこれほど多くのアクセスが行われていた理由は何でしょうか?
また(い)で減少した理由は何でしょうか?
質問②:Aは数年前に作成したプログラムに変更を加えております。アプリケーションフレームワークを有効にする=Trueとした場合、
Falseであった場合と異なる動作をする点、注意点などありますか?※できればTrueに変更したいのです。
質問③:またAは64ビット対応で作成しておりましたが、32ビット(X86で関連dllから再コンパイル)すると、
起動速度が5秒に改善されました。
32ビット/64ビットで注意すべき点などありますでしょうか?