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

7 vues (au cours des 30 derniers jours)
MathWorks Support Team
MathWorks Support Team le 27 Août 2010
MATLAB Compiler で作成したスタンドアロンアプリケーション(EXE)を繰り返して実行する際、1回目の起動時は時間がかかります。2回目以降は比較的時間がかからないのですが、それでも実行する間隔があいた場合、再度起動に時間がかかるようになることがあります。

Réponse acceptée

MathWorks Support Team
MathWorks Support Team le 26 Mar 2023
Modifié(e) : MathWorks Support Team le 19 Avr 2023
起動時間の短縮は、オペレーションシステム(OS)によるキャッシュまたはRAMを使用した最適化によるものです。アプリケーションプログラムが起動する際、プログラムデータは(ハードディスク等の)アクセス速度が遅い媒体から(RAMなどの)速い媒体へロードされます。アプリケーションプログラムが終了するとき、これらのロードされたプログラムはすぐに消去されることはなく、そのままRAM上に残ります。
(参考)
・Page fault
・Locality of reference
マシンには無限にメモリがないため、別のプログラムがメモリを必要とすると、メモリ上のコードを取り除きます。再度、スタンドアロンアプリケーションを起動するとき、前回使用したプログラムデータが(たまたま)RAM上に残っている場合はHDDからロードする必要がないため、起動は速くなります。もし、すでに一部でもRAM上から消去されてる場合は、再度HDDからロードする必要がありますので、遅くなります。
これを回避するためには、非常に軽い処理のEXEを作成し、それを定期的に実行する方法があります。
または、EXEではなくライブラリ(DLL)を作成し、それを別のアプリケーションからコールすることにより、DLLやランタイムの常駐化を実現することができます。

Plus de réponses (0)

Catégories

En savoir plus sur スタンドアロン アプリケーション dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!