MATLAB Compilerで作成したスタンドアロンアプリケーションの起動が遅いのはなぜですか?
5 ビュー (過去 30 日間)
古いコメントを表示
MathWorks Support Team
2010 年 8 月 27 日
編集済み: MathWorks Support Team
2023 年 4 月 19 日
MATLAB Compiler で作成したスタンドアロンアプリケーション(EXE)を繰り返して実行する際、1回目の起動時は時間がかかります。2回目以降は比較的時間がかからないのですが、それでも実行する間隔があいた場合、再度起動に時間がかかるようになることがあります。
採用された回答
MathWorks Support Team
2023 年 3 月 26 日
編集済み: MathWorks Support Team
2023 年 4 月 19 日
起動時間の短縮は、オペレーションシステム(OS)によるキャッシュまたはRAMを使用した最適化によるものです。アプリケーションプログラムが起動する際、プログラムデータは(ハードディスク等の)アクセス速度が遅い媒体から(RAMなどの)速い媒体へロードされます。アプリケーションプログラムが終了するとき、これらのロードされたプログラムはすぐに消去されることはなく、そのままRAM上に残ります。
(参考)
・Page fault
・Locality of reference
マシンには無限にメモリがないため、別のプログラムがメモリを必要とすると、メモリ上のコードを取り除きます。再度、スタンドアロンアプリケーションを起動するとき、前回使用したプログラムデータが(たまたま)RAM上に残っている場合はHDDからロードする必要がないため、起動は速くなります。もし、すでに一部でもRAM上から消去されてる場合は、再度HDDからロードする必要がありますので、遅くなります。
これを回避するためには、非常に軽い処理のEXEを作成し、それを定期的に実行する方法があります。
または、EXEではなくライブラリ(DLL)を作成し、それを別のアプリケーションからコールすることにより、DLLやランタイムの常駐化を実現することができます。
0 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で スタンドアロン アプリケーション についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!