मैं अपने सी ++ कोड से एक डीएलएल कोड करता हूं जो MATLAB में लिखा गया था। मैं एक अजीब प्रभाव का निरीक्षण करता हूं: पहली कॉल में अगली कॉल करने में अधिक समय लगता है। इसमें 3-4 गुना अधिक लगता है। क्या यह सामान्य है? क्या इसके साथ कुछ करना संभव है?मैटलैब डीएलएल को पहली कॉल क्यों अगली कॉल से ज्यादा समय लेती है?
उत्तर
हाँ सामान्य है, देरी MATLAB Runtime Compiler शुरू करने से होती है। यह MATLAB कोड को आपके द्वारा MATLAB के माध्यम से बनाए गए डीएलएल से चलाता है। शुरुआती स्टार्टअप को AFAIK से बचा नहीं जा सकता है, लेकिन जब आप बाद में "लागत" से बचने के लिए अपना आवेदन शुरू करते हैं तो आप डीएलएल को डमी कॉल जोड़ सकते हैं।
चूंकि प्रश्न लॉक है, इसलिए मैं इसे एक टिप्पणी के रूप में जोड़ूंगा। दो प्रकार की देरी होती है - पहली बार जब आप अपने कंप्यूटर को पहली बार * कभी * इस कंप्यूटर में चलाते हैं, तो ज़िप फ़ाइल निकाली जाती है और एमसीआर लॉन्च किया जाता है। दूसरा प्रकार तब होता है जब आप पहले से ही इस एप्लिकेशन को चला चुके हैं। फिर, केवल एमसीआर लोड हो गया है। –
मैंने सोचा था कि मैटलैब रनटाइम कंपाइलर शुरू करने में देरी mclInitialize आवेदन या
यदि मेरे पास कई डीएलएल में कई MATLAB फ़ंक्शन हैं, तो इसका मतलब यह है कि इस तरह की देरी प्रत्येक कार्य के लिए पहली कॉल पर होगी? – user1913557
- 1. डीएलएल से कॉल फ़ंक्शन?
- 2. डब्ल्यूसीएफ सेवा पहली कॉल
- 3. पहली कॉल के लिए डब्ल्यूसीएफ प्रदर्शन धीमा
- 4. डीएलएल फ़ंक्शन कॉल का ओवरहेड
- 5. डीएलएल विधि कॉल को कैसे रोकें?
- 6. फ़ंक्शन को कॉल करते समय "अपवाद फेंकना" क्यों आवश्यक है?
- 7. मैं रूबी से विंडोज डीएलएल कार्यों को कैसे कॉल करूं?
- 8. , डीएलएल को कॉल और चलाने के लिए, जहां डीएलएल नाम स्ट्रिंग चर से आता है?
- 9. Async P/कॉल को कॉल करें
- 10. रीग सिस्टम कॉल को कॉल करते समय सिगप्रोकमास्क क्यों बुलाया जाता है?
- 11. ContentProvider.onCreate() को एप्लिकेशन.ऑनक्रेट() से पहले क्यों कॉल किया जाता है?
- 12. एसक्यूएल रिपोर्टिंग सेवाएं: पहली कॉल बहुत धीमी है
- 13. MATLAB से जावा को कॉल करना?
- 14. कन्स्ट्रक्टर को कोई कॉल क्यों नहीं है?
- 15. क्या एक ही आवेदन में एकाधिक धागे से एक डीएलएल समारोह को कॉल करना सुरक्षित है?
- 16. डेटाबेस को कॉल करते समय एंड्रॉइड SQLiteMisuseException.rawQuery
- 17. यह कॉल संदिग्ध क्यों है?
- 18. फ़ंक्शन कॉल से फ़ंक्शन कॉल नाम निकालने
- 19. रुबी: क्यों कॉल करने के लिए कॉल करता है?
- 20. GetManifestResourceStream GetManifestResourceNames को कॉल करते समय संसाधन नाम मौजूद होने पर क्यों शून्य हो जाता है?
- 21. Automapper पहली कॉल पर सही ढंग से नक्शे लेकिन दूसरी कॉल
- 22. जावा से बीपीईएल को कॉल करना
- 23. glGetTexImage (atioglxx.dll) को कॉल करते समय त्रुटि
- 24. कॉल एंड के बाद कॉल लॉग से कॉल हटाएं
- 25. क्यों System.nanoTime() लेती है 4400 नैनो सेकंड
- 26. AVAudioPlayer अंतराल को कॉल करते समय
- 27. डीएल कॉल
- 28. क्यों रेडियोबुटटन सूची हमेशा एक नई पंक्ति लेती है?
- 29. क्या मैं windows.onbeforeunload को AJAX कॉल करते समय कॉल करने से रोक सकता हूं
- 30. सी # से डेल्फी डीएलएल को कॉल करना अप्रत्याशित परिणाम उत्पन्न करता है
आप अपने सी ++ कोड में कॉल कैसे कर रहे हैं? –
एक बिल्कुल बढ़िया सवाल है। शायद गैर-मैटलैब उपयोगकर्ताओं ने गलतफहमी के कारण इसे बंद कर दिया। –
मेरी समझ यह है कि इससे बचने का एकमात्र तरीका मैटलैब कोड को सी/सी ++ कोड में परिवर्तित करना है [मैटलैब कोडर] (http://www.mathworks.com.au/products/matlab-coder/index.html) और फिर इसे वहां से संकलित करें। जैसा कि @ नोमिनसिम बताता है, "संकलित" मैटलैब कोड वास्तव में संकलित नहीं होता है - इस विषय पर एक अच्छा SO उत्तर है [यहां] (http://stackoverflow.com/questions/8636267/matlab-code-after-compilation) –