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!