मेरे पास एक win32 dll और दो अनुप्रयोग हैं जो एक ही डीएल का उपयोग करते हैं। एक अप्रबंधित अंतरिक्ष में सी का उपयोग करके लिखा जाता है और दूसरा .NET एप्लिकेशन है जो पिनवोक्स का उपयोग करके अप्रबंधित कोड को कॉल करता है।प्रबंधित कोड से अप्रबंधित कोड का आविष्कार करने का प्रदर्शन
कभी-कभी .NET अनुप्रयोग का प्रदर्शन सी अनुप्रयोग से बेहतर होता है। तकनीकी रूप से .net से अप्रबंधित कोड का आह्वान करते हुए प्रदर्शन ओवरहेड होता है लेकिन इस मामले में नहीं।
मैंने एमएसडीएन संदर्भ की जांच की और ऐसा लगता है कि वास्तविक कॉल किए जाने से पहले ऐसा कुछ प्रीप्रोकैसिंग होता है। लिंकेज के दौरान डीएल लोड हो गया है।
मैं समझना चाहता हूं कि कौन से परिदृश्य हैं। नेट एप्लिकेशन बेहतर प्रदर्शन करता है?
आप दो अनुप्रयोगों के प्रदर्शन को कैसे मापते हैं, और क्या अन्य सभी तर्क बिल्कुल दोनों के लिए समान हैं? –
आम तौर पर, मूल कॉल तेज होना चाहिए, इसे देखें: http://www.codeproject.com/KB/dotnet/pinvokeperformance.aspx क्या आप सुनिश्चित हैं कि आपके माप सही हैं? –
@AvadaKedavra - मैंने क्रमशः .net और c अनुप्रयोग के लिए स्टॉपवॉच और समय का उपयोग कर एक विशेष विधि कॉल मापा। – sundar