यदि मेरे पास WPF एप्लिकेशन है और डिबगिंग उद्देश्यों के लिए कंसोल पर प्रदर्शित होने वाले संदेश हैं। यह विंडोज अनुप्रयोग के रूप में कॉन्फ़िगर किए जाने पर एप्लिकेशन के प्रदर्शन को प्रभावित करेगा और कोई कंसोल प्रदर्शित नहीं किया जा रहा है?कंसोल है। विंडोज अनुप्रयोगों में एक बाधा डालें?
उत्तर
कंसोल में असली बाधा। राइटलाइन() वास्तव में कंसोल पर लिख रही है। वास्तव में महंगा है, खासकर जब कंसोल को स्क्रॉल करने की आवश्यकता होती है। जब कोई कंसोल नहीं होता है और आउटपुट विंडो में इसे प्रदर्शित करते समय आउटपुट को कैप्चर करने वाले विजुअल स्टूडियो होस्टिंग प्रक्रिया में भी काफी ओवरहेड होता है।
इनमें से कोई भी आपके ऐप को तैनात करने के बाद कोई भूमिका निभाता है। लेकिन हां, सभी विधि कॉल किए जा रहे हैं और स्ट्रिंग्स स्वरूपित हो रहे हैं, यह केवल अंतिम संभव पल में बिट-बाल्टी में पड़ता है जब विंडोज एपीआई फ़ंक्शन को पता चलता है कि कोई कंसोल नहीं है।
यदि आपके ऐप को अब डिबग बिल्ड में चलते समय स्वीकार्य perf है, तो इसके बारे में चिंता न करें। यदि आप डिबगर के बिना रिलीज बिल्ड में तारकीय perf से कम देखते हैं और आपको लगता है कि यह Console.WriteLine() के कारण हो सकता है तो खोज करने में संकोच नहीं करें + इसे डीबग.प्रिंट() पर बदलें।
एक बाधा का तात्पर्य है कि यह आपके कोड में सबसे धीमा बिंदु है। हम यह नहीं जान सकते कि जब तक हम सब कुछ नहीं कर रहे हैं, हम जानते हैं।
क्या कोई प्रदर्शन प्रभाव बिल्कुल है, हां, शायद। यह कुछ भी नहीं कर रहा है, यह कुछ कर रहा है। क्या यह आपके कार्यक्रम के लिए बाधा बनने के लिए पर्याप्त होगा, मुझे अत्यधिक संदेह है। क्या यह एक उल्लेखनीय प्रभाव होने के लिए पर्याप्त होगा, यह संभव है, लेकिन असंभव है। यह सब इस बात पर निर्भर करता है कि आपका प्रोग्राम और क्या कर रहा है, और आप कंसोल पर कितना लिख रहे हैं (यह आपके लिए जितना समय लगेगा उसे ध्यान में रखना शुरू करने के लिए बहुत कुछ होना चाहिए।)
जैसा कि उल्लेख किया गया था टिप्पणियां, आप का उपयोग Console.WriteLine
के बजाय कर सकते हैं ताकि आप डिबगिंग के दौरान आउटपुट देख सकें, लेकिन जब आप रिलीज बिल्ड को संकलित करते हैं तो यह उन कथनों को प्रिंट नहीं करेगा।
कुछ करने से हमेशा कुछ भी करने से अधिक समय लगता है।
एक शून्य कंसोल पर पाठ लिखने का कार्य एक प्रमुख प्रदर्शन हिट नहीं होना चाहिए, लेकिन आप पैरामीटर के रूप में क्या गुजर रहे हैं, और किस मात्रा में हो सकता है।
अपने कंसोल आउटपुट के साथ और बिना वास्तविक प्रदर्शन को मापें कि आपके उपयोग पैटर्न आपके स्वीकार्य सहनशीलता के भीतर हैं या नहीं।
डीबग.राइटलाइन() आपकी आवश्यकताओं के आधार पर बेहतर विकल्प हो सकता है, क्योंकि जब आप रिलीज के लिए तैयार होते हैं तो इन्हें स्वचालित रूप से बाहर कर दिया जाएगा।
अपने स्वयं के लॉगिंग फ्रेमवर्क को बनाने और अनुकूलित करने का प्रयास शायद ही कभी सबसे अच्छा तरीका है।
क्या आपने log4net जैसे कुछ देखा है? आप कंसोल पर लॉगिंग सहित विभिन्न परिशिष्टों को कॉन्फ़िगर कर सकते हैं। आप लॉगिंग ओवरहेड को वास्तव में कम करने के लिए एसिंक एपेंडर भी बना सकते हैं।
एरिक
- 1. एक विम कमांड को कितना समय निकालने में बाधा डालें?
- 2. पीडीबी में पाइथन प्रोग्राम चलाने में बाधा डालें (रोकें)?
- 3. क्या नकली विंडोज कंसोल एपीआई संभव है?
- 4. एक कंसोल ऐप को विंडोज ऐप
- 5. कंसोल। राइटलाइन() एक विंडोज सेवा के अंदर?
- 6. कंसोल से विंडोज फॉर्म
- 7. विंडोज कंसोल% DATE% मठ
- 8. बड़े वेब अनुप्रयोगों में विंडोज वर्कफ़्लो उपयोग
- 9. विंडोज और कंसोल अनुप्रयोग के बीच अंतर
- 10. कंसोल अनुप्रयोगों के लिए बोसन बनाम थोर
- 11. सभी विंडोज कंसोल अनुप्रयोग स्क्रीन बफर आकार
- 12. विंडोज मेट्रो अनुप्रयोगों में कोई पी 2 पी नहीं है?
- 13. अनुसूचित कंसोल ऐप बनाम विंडोज सेवा? प्रत्येक
- 14. पर्यावरण परिवर्तनीय में विंडोज कंसोल चौड़ाई
- 15. एक बाधा
- 16. कंसोल अनुप्रयोगों को डिजाइन करने में वास्तुशिल्प विचार?
- 17. जेवी कंसोल अनुप्रयोगों में^सी से कैसे निपटें?
- 18. कंसोल से विंडोज फॉर्म + कमांड सी #
- 19. क्या विंडोज कंसोल में हिब्रू लिखने का कोई तरीका है?
- 20. विंडोज इंस्टालर में रेडियो बटन कैसे डालें - तैनाती परियोजना?
- 21. विंडोज अनुप्रयोगों के लिए आधुनिक सहायता-प्रणाली
- 22. एक पंक्ति में डेटाबेस में सरणी डालें
- 23. विंडोज फॉर्म अनुप्रयोगों के लिए रंग-पिकर
- 24. विंडोज डेस्कटॉप अनुप्रयोगों के लिए उपयोग ट्रैकिंग
- 25. लिनक्स पर विंडोज अनुप्रयोगों का विकास?
- 26. विंडोज अनुप्रयोगों के लिए डिफ़ॉल्ट प्रतीक?
- 27. विंडोज गैर-यूनिकोड अनुप्रयोगों की पहचान कैसे करता है?
- 28. विंडोज अनुप्रयोग से कंसोल। राइटलाइन को एक स्ट्रिंग
- 29. डेल्फी अनुप्रयोगों में जावास्क्रिप्ट
- 30. ओरेकल को एक बाधा
ठीक है, डिबगिंग उद्देश्यों के लिए क्यों Debug.WriteLine का उपयोग नहीं करते? यह "आउटपुट" विंडो में आउटपुट करता है, लेकिन अगर मुझे गलत नहीं लगता है तो विजुअल स्टूडियो विकल्पों के माध्यम से तत्काल विंडो पर रीडायरेक्ट किया जा सकता है। – erodewald
इसे मापें और आपको निश्चित रूप से पता चलेगा :-) –
एएसपी के लिए समान प्रश्न।नेट, गारंटी नहीं देगा उत्तर एक जैसा है: http://stackoverflow.com/questions/137660/where-does-console-writeline-go-in-asp-net –