私は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. DLLへの呼び出しからAPIへの呼び出し
- 2. office.js ExecuteFunctionは、最初の呼び出し後に呼び出す時間がかかります
- 3. なぜ私のajax呼び出しには時間がかかりますか?
- 4. 最初のメソッド呼び出しが常に最も長くかかるのはなぜですか?
- 5. DLLからMATLABを呼び出す
- 6. なぜinstanceof呼び出しの使用に時間がかかりますか?
- 7. なぜ最初の呼び出しが長すぎるのですか?
- 8. 別のCOM DLLへの呼び出しでVB.NET呼び出しCOM DLLがエラーになる
- 9. Dll関数の呼び出しは、通常の関数呼び出しより速いですか?
- 10. 最初の呼び出しでピカソが最初の呼び出しで画像を読み込まない
- 11. 最初のfirebase呼び出しでリアルタイムデータベースが最初に応答してから時間がかかるのはなぜですか?
- 12. 最初のメソッドの呼び出し時に2番目のメソッドへの呼び出しをトリガーする
- 13. Jquery Ajaxの呼び出しは、最初の呼び出し成功後に失敗しますか?
- 14. コンポーネントへの最初の呼び出し時にmapStateToPropsが呼び出されない
- 15. マネージコードからの呼び出し時にC++ DLLがクラッシュする
- 16. Juliaへの最初の呼び出しは遅いです
- 17. なぜ機能の再定義が最初のものを呼び出すより速いのですか?
- 18. eclipseプロジェクトからのSOAP WebサービスAPI呼び出しがSOAP UIからの呼び出しよりも時間がかかります
- 19. pytz.timezoneへの最初の呼び出しがvirtualenvで遅い
- 20. OnlyOnCanceled継続がなぜ呼び出されるのですか?
- 21. 最初の呼び出しの後でAjax呼び出しを繰り返す方法
- 22. Angularjs - 最初に呼び出した後に関数呼び出しを再帰呼び出しします。
- 23. メソッドを呼び出してキャンセルし、呼び出しに時間がかかりすぎる場合は呼び出しメソッドに戻ります。
- 24. String.Containsが最後のオーバーロードを直接呼び出すのはなぜですか?
- 25. 暗黙の__getitem __-呼び出しで__getattribute__が呼び出されないのはなぜですか?
- 26. コントローラが呼び出された後にhtml.erbファイルが呼び出されるのはなぜですか?
- 27. マクロ呼び出しの後にセミコロンがないのはなぜですか?
- 28. 最初の呼び出しでブートストラップのモーダルが空になる
- 29. 別のスレッドでも呼び出し/呼び出し
- 30. effective_javaからの呼び出しをインラインで呼び出す
どのようにして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) –