MATLAB Compiler のアプリケーション生​成において、CTFア​ーカイブを組み込むこ​とと、組み込まないこ​との違いは何ですか?

20 views (last 30 days)
MATLAB Compiler や MATLAB Compiler SDK で作成されたアプリケーションや共有ライブラリは、基本的にはコンテンツが "CTF アーカイブ" として組み込まれるそうですが、どういうことか、教えてください。
また、組み込まない場合との違いを教えてください。

Accepted Answer

MathWorks Support Team
MathWorks Support Team on 29 Nov 2022
Edited: MathWorks Support Team on 29 Nov 2022
組み込み型 CTF アーカイブ(Embedded CTF archive)について
基本的に、CTF アーカイブは、MATLAB Compiler や MATLAB Compiler SDK で生成されたアプリケーション(生成物)に組み込まれ、配布先環境にて実行された時、一時フォルダ(%TEMP%)下に抽出されます。
ファイルシステム内のコンポーネントの各コピーは、アーカイブが展開される独自のサブディレクトリを持つことになります。これは、デフォルトの動作であり、CTFアーカイブは効率的にユーザーから隠された位置で展開されます。
アプリケーションが "-C" フラグを付加してコンパイルされた場合は、CTF アーカイブはアプリケーションに組み込まれず、別途 *.ctf ファイルとして生成されます。
アーカイブは実行時に一度だけ展開されるので、アプリケーションのすべてのコピーも、同じアーカイブにアクセスすることになります。
このシナリオでのファイルの破損を防ぐために、「デプロイ ロック」(deploy locks)が使用されており、1 つのインスタンスだけが展開されたアーカイブにアクセスできます。
この設定を MCR_INHIBIT_CTF_LOCK 環境変数を使用することで無効にもできますが、潜在的に散発的な動作を引き起こす可能性があるため、推奨されません。「デプロイ ロック」を禁止する場合は、展開された CTF アーカイブを読み取り専用にする必要があります。
CTF アーカイブを組み込まない場合の違いについて
コンパイルしたアプリの多くのコピーが同時に実行されている場合、それらはすべて独自の CTF アーカイブを参照します。この場合、時間と空間のコストが大きくなり、アーカイブがネットワーク ファイル システムに展開されると、さらに悪化する可能性があります。
一方で、"-C" フラグを使用すると、アーカイブは一度だけ展開されるため、これらのコストを最小限に抑えることができます。
例えば、アプリケーションを大勢の社内ユーザに配布するとします。
デフォルトでは、CTF アーカイブが組み込まれた実行ファイルが作成され、各ユーザに配布されます。この状況下において、アプリケーション内のコードを更新したい場合は、必然的に、各ユーザの実行ファイルも更新する必要があります。
しかし、アーカイブを組み込まず、ネットワーク上のアクセス可能な場所に置くこともできます。この場合であれば、各ユーザが同じ CTF アーカイブを参照しているので、簡単にコードを再展開し、その変更を即座に各ユーザの実行ファイルに反映させることができます。
また、アーカイブを組み込まないことで、特に複雑な環境での散発的なクラッシュを防止することも期待できます。

More Answers (0)

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!