私はC++コードから、MATLABで書かれたDLLを呼び出します。 私は奇妙な影響を観察します:最初の呼び出しは、次の呼び出しにはるかに多くの時間がかかります。 3〜4回以上かかる。 それは正常ですか? これで何かできますか?Matlab DLLへの最初の呼び出しで後続の呼び出しよりも時間がかかるのはなぜですか?
答えて
はい、これは正常です。遅れはMATLAB Runtime Compilerの起動から発生します。これは、MATLABで作成したdllからMATLABコードを実行するものです。最初の起動はAFAIKを避けることはできませんが、後で "コスト"を避けるために、アプリケーションの起動時にダミーコールをDLLに追加することができます。
質問がロックされているので、これをコメントとして追加します。 2種類の遅延があります。最初にこのコンピュータで初めて*アプリケーションを実行すると、ZIPファイルが抽出され、MCRが起動されます。もう1つは、すでにこのアプリケーションを1回実行したときです。次に、MCRのみがロードされます。 –
私はMatlab Runtime Compilerの起動からの遅延がmclInitializeApplicationまたは
いくつかのDLLにいくつかのMATLAB関数がある場合、そのような遅延は各関数の最初の呼び出しになりますか? – user1913557
- 1. 別のCOM DLLへの呼び出しでVB.NET呼び出しCOM DLLがエラーになる
- 2. 最初のメソッドの呼び出し時に2番目のメソッドへの呼び出しをトリガーする
- 3. Jquery Ajaxの呼び出しは、最初の呼び出し成功後に失敗しますか?
- 4. コンポーネントへの最初の呼び出し時にmapStateToPropsが呼び出されない
- 5. Dll関数の呼び出しは、通常の関数呼び出しより速いですか?
- 6. pytz.timezoneへの最初の呼び出しがvirtualenvで遅い
- 7. マネージコードからの呼び出し時にC++ DLLがクラッシュする
- 8. なぜ機能の再定義が最初のものを呼び出すより速いのですか?
- 9. String.Containsが最後のオーバーロードを直接呼び出すのはなぜですか?
- 10. 別のスレッドでも呼び出し/呼び出し
- 11. 暗黙の__getitem __-呼び出しで__getattribute__が呼び出されないのはなぜですか?
- 12. クラスメソッドへの最初の呼び出しの前に静的コンストラクターが呼び出されない理由
- 13. msbuildへの最初の呼び出しがハングアップ
- 14. 最初に何が呼び出されるのですか?
- 15. なぜTwitterのAPI呼び出しが遅いのですか?
- 16. なぜこのコードはブロックの最後にkeyup()を呼び出しますか?
- 17. ライブラリへの関数呼び出しの呼び出し
- 18. 最初の呼び出しでgluTessが機能しないのはなぜですか?
- 19. 最初の呼び出しでE_NOTICEエラーが発生しないのはなぜですか?
- 20. strcpy()を呼び出すときに、対応するサブルーチン呼び出しがマシンコードのダンプで呼び出されないのはなぜですか?
- 21. 呼び出し間の関数の呼び出し
- 22. なぜstd :: vector :: emplaceは、どのコンストラクタも呼び出さずにデストラクタを呼び出すのですか?
- 23. glMatrixModeを呼び出すたびにglLoadIdentityを呼び出す必要があるのはなぜですか?
- 24. defrecordコンストラクタで呼び出しを呼び出しますか?
- 25. MATLAB save()がsaveobj()を2回呼び出すのはなぜですか?
- 26. NSNetServiceは、メソッド呼び出しの終了後も持続しますか?
- 27. JQuery Ajaxの呼び出しに多くの時間がかかります
- 28. jquery ajaxの呼び出しに時間がかかりすぎる
- 29. GWTのサーバーへの最後の呼び出しを検出する方法は?
- 30. ondrawの呼び出し後にキャンバスをリセットしてから、アンドロイドでもう一度呼び出す
どのようにしてC++コードで呼び出しを行っていますか? –
完璧に良い質問です。おそらくMatlab以外のユーザーは誤解のためそれを閉じたでしょう。 –
これを避ける唯一の方法は、Matlabコードを[Matlab Coder](http://www.mathworks.com.au/products/matlab-coder/index.html)を使用してCまたはC++コードに変換することですそこからコンパイルしてください。 @NominSimが指摘しているように、 "コンパイルされた" Matlabコードは実際にはコンパイルされません - このトピックに関する良いSOの答えがあります[ここ](http://stackoverflow.com/questions/8636267/matlab-code-after-compilation) –