MATLAB Compilerで作​成したスタンドアロン​アプリケーションの起​動が遅いのはなぜです​か?

조회 수: 5 (최근 30일)
MathWorks Support Team
MathWorks Support Team 2010년 8월 27일
편집: MathWorks Support Team 2023년 4월 19일
MATLAB Compiler で作成したスタンドアロンアプリケーション(EXE)を繰り返して実行する際、1回目の起動時は時間がかかります。2回目以降は比較的時間がかからないのですが、それでも実行する間隔があいた場合、再度起動に時間がかかるようになることがあります。

채택된 답변

MathWorks Support Team
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개)

카테고리

Help CenterFile Exchange에서 スタンドアロン アプリケーション에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!