MATLAB Compilerで作成したスタンドアロンアプリケーションの起動が遅いのはなぜですか?
4 views (last 30 days)
Show older comments
MathWorks Support Team
on 27 Aug 2010
Edited: MathWorks Support Team
on 19 Apr 2023
MATLAB Compiler で作成したスタンドアロンアプリケーション(EXE)を繰り返して実行する際、1回目の起動時は時間がかかります。2回目以降は比較的時間がかからないのですが、それでも実行する間隔があいた場合、再度起動に時間がかかるようになることがあります。
Accepted Answer
MathWorks Support Team
on 26 Mar 2023
Edited: MathWorks Support Team
on 19 Apr 2023
起動時間の短縮は、オペレーションシステム(OS)によるキャッシュまたはRAMを使用した最適化によるものです。アプリケーションプログラムが起動する際、プログラムデータは(ハードディスク等の)アクセス速度が遅い媒体から(RAMなどの)速い媒体へロードされます。アプリケーションプログラムが終了するとき、これらのロードされたプログラムはすぐに消去されることはなく、そのままRAM上に残ります。
(参考)
・Page fault
・Locality of reference
マシンには無限にメモリがないため、別のプログラムがメモリを必要とすると、メモリ上のコードを取り除きます。再度、スタンドアロンアプリケーションを起動するとき、前回使用したプログラムデータが(たまたま)RAM上に残っている場合はHDDからロードする必要がないため、起動は速くなります。もし、すでに一部でもRAM上から消去されてる場合は、再度HDDからロードする必要がありますので、遅くなります。
これを回避するためには、非常に軽い処理のEXEを作成し、それを定期的に実行する方法があります。
または、EXEではなくライブラリ(DLL)を作成し、それを別のアプリケーションからコールすることにより、DLLやランタイムの常駐化を実現することができます。
0 Comments
More Answers (0)
See Also
Categories
Find more on スタンドアロン アプリケーション in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!