RAD Studio XE3 の IDE 起動時間をどうにかしたい!
細川さんのバージョンを元にWinVerifyTrustによる署名の検証を組み込んだバージョン。初回の起動が速くなったような気がするけど気のせいかもしれず。 http://t.co/EZ6tYvTN
2012-09-12 16:54:19@onimaro2010 おにさんのコードを実行したところ、DLL確認15秒・IDE起動15秒が、12秒・13秒で5秒短縮しました!事前読み込みに9秒かかってるので帳尻は微妙ですが、効果ありです!
2012-09-12 19:04:47XE3 Preloader
いっそ bds.exe そのものをプリロードしてしまえ的な考え方です。
StartUpInfo の wShowWindow に SW_HIDE を設定して XE3 を呼び出してやればいいんじゃね?と思ってやったら、スプラッシュが表示された……そりゃそうだ。WaitForInputIdle で待った後 WM_QUIT 送ってみたんだけど、効果あるのかな
2012-09-12 16:20:01.@ht_deko @ran_bousyo スタートアップに入れる感じの、こんな物を作りましたが、果たしてここまですべき事なのか……http://t.co/aEnvL6eI http://t.co/1UC8mXBH
2012-09-12 20:24:28@pik @ran_bousyo 後で togetter するなり CodeCentral にアップするなりしときますですー m(_ _)m
2012-09-12 20:33:25@pik @ht_deko 試してみました。チェックが4秒・起動が5秒で、初回起動が次回起動と同じになりました!Xe3Preloaderが40秒ですけど、効果は凄いです!
2012-09-12 21:19:17@pik @ht_deko @ran_bousyo ソースを覗いて見る。これは・・・スタートアップ時に初回起動をしているということですか?
2012-09-12 21:25:09@pik @ht_deko ああ、なるほど。「"BDS.exe /preload" みたいなオプション (サイレントで起動してすぐに終了する) 」の実装なんですね。
2012-09-12 22:43:02@ran_bousyo @ht_deko はい、その通りです。普通に一回起動させてます。ただ単に起動させると見えてしまうので、別のデスクトップを作って、そっちに表示させてます。
2012-09-12 22:58:19最初僕が言ってたのが OS の DLL キャッシュを当て込んだプリローダで、@onimaro2010 さんのはそれを WinVerifyTrust API で事前チェックするようにしたもの、@pik さんが後で行われた実装は BDS.exe 自体のプリロードですね。
2012-09-12 23:07:50プリローダが起動中に XE3 を起動しても影響が出ないように、-rpreload とかのスイッチを入れれば完璧かもです。> Delphi 起動時に渡せるスイッチは? (http://t.co/4QRTLvWX)
2012-09-12 23:14:26事前に起動して起動速度を稼ぐ手法はよく用いられていますが、
大抵はそのまま常駐しておくというものが多いです。
DLL のプリロードでも WinVerifyTrust で事前照合すれば
効果がある事は @onimaro2010 さんのコードで実証されました。
加えて @pik さんの方法だと bds.exe 自体をスーパーフェッチに入れる事ができるため、
起動後即終了だけでも大幅な改善を見ることができます。
bds.exe に/preload なり /prefetch なりのオプションが実装されるといいですね。
XE3 Preloader / XE3 DLL Preloader の更なる改良
ソースコードが公開されているので自由に改造する事ができます。
細川さんの XE3 Preloader をサイレント動作させるように少しだけいじってみました。http://t.co/Y4JgeBvY #delphi_jp
2012-09-13 06:31:59@onimaro2010 さんの XE3 DLL Preloader (with WinVerify Trust) をサイレント動作させるように少しだけいじってみました。http://t.co/JHuo04cS
2012-09-13 07:52:49