2011-02-07 12 views
7

में चर कैसे बदलते हैं, यह जानने के लिए कि किसी को भी यह देखने का तरीका पता है कि विज़ुअल स्टूडियो 2010 में समय के साथ एक चर परिवर्तनीय परिवर्तन कैसे बदलता है? अर्थात। यदि आप निम्न कोडविज़ुअल स्टूडियो

double someVariable; 
for (int i = 0; i < 20; i++) 
{ 
    someVariable = Math.Pi() * i; 
} 

था और आप आईडीई में 'someVariable' देखा आप कोड के माध्यम से कदम और घड़ी यह कैसे हर कदम के साथ बढ़ता है सकता है। मैं लूप के माध्यम से चलाने में सक्षम होना चाहता हूं और साजिश के साथ मैन्युअल रूप से कदम उठाने के साथ क्या वैरिएबल किया था। मैं बहुत सारे गणित कर रहा हूं और कभी-कभी देखता हूं कि परिवर्तनीय परिवर्तन वास्तव में उपयोगी और अंतर्दृष्टिपूर्ण है।

अधिक जानकारी: मेरे पास थोड़ा अलग हलकों का समूह है और समस्या के आधार पर मैं समस्या निवारण कर रहा हूं, यह देखने के लिए कि विभिन्न समस्याएं कहां हो रही हैं, देखने के लिए मैं विभिन्न चर देखना चाहता हूं। मैं वर्तमान में लॉग इन फ़ाइल में इन चरों को लॉग करता हूं लेकिन यह सॉल्वर को काफी धीमा कर देता है और मुझे समस्याओं को ट्रैक करने के लिए डीबग कोड बदलने में काफी समय लगता है। मैं ऐसा करने के लिए एक बेवकूफ तरीका ढूंढ रहा हूं जो आईडीई केंद्रित है। स्टेरॉयड पर एक विजुअलाइज़र का क्रमबद्ध करें।

+0

क्या आप इसे कंसोल पर आउटपुट कर सकते हैं? 'Console.WriteLine()' या 'Trace.WriteLine()' –

+0

यह एक परफॉर्म काउंटर/चर के लिए बिल्कुल सही है - मेरा उत्तर – Tim

उत्तर

7

ट्रेसेपॉइंट्स का उपयोग करने के बारे में कैसे? वीएस 2008 में (यह वीएस 2010 में कुछ अलग है) आप बस एक सामान्य ब्रेकपॉइंट जोड़ते हैं, फिर उस पर राइट-क्लिक करें, फिर "जब हिट करें ..." चुनें।

बाद संवाद बॉक्स में, "एक संदेश प्रिंट" और IDE में उत्पादन विंडो पर यह सिर्फ उत्पादन होगा अपने मूल्य की तरह

someVariable = {someVariable} 

कुछ दर्ज की जाँच करें।

स्क्रीनशॉट:

tracepoint dialog

+0

यह निश्चित रूप से उन चीज़ों के साथ है जो मैं पूरा करने की कोशिश कर रहा हूं। लेकिन जब मैंने कोशिश की तो मुझे नहीं पता था कि यह कहां प्रिंट कर रहा था। – PlTaylor

+0

कोई बात नहीं, मैंने इसे आउटपुट में पाया जहां यह सबसे अधिक समझ में आता है। यह एक महान टिप है !! – PlTaylor

1

आसान तरीका? कोई नहीं।

लेकिन आप इसे अपने आप को कोड कर सकते हैं ..

  1. संपत्ति का प्रयोग करें।
  2. सेटटर कोड में, जो कुछ संग्रह में परिवर्तन लॉग करेगा। संभवतः समय भी बचाओ।
  3. इस संग्रह प्लॉट करने के लिए कुछ की साजिश रचने नियंत्रण का प्रयोग करें

संपादित करें: आप न संपत्ति बनाना चाहते हैं, तो आप सामान्य वर्ग के कुछ प्रकार है कि यह संपत्ति है और आंतरिक लॉगिंग तर्क किसी तरह का है बना सकते हैं ।

+0

देखें यह अब मैं बहुत कुछ करता हूं, सिवाय इसके कि मैं इसे लॉग इन करने के लिए लॉग इन कोड का उपयोग करता हूं मेरी लॉग फ़ाइल में। इसके साथ समस्या यह है कि यह गति खर्च करता है और कुछ बार मैं इसे बाहर ले जाना भूल जाता हूं। दूसरी समस्या यह है कि मेरे पास मेरे प्रोजेक्ट में दर्जनों अलग-अलग हलक हैं और कुछ ऐसा चाहते हैं जो कोड विशिष्ट के बजाय आईडीई केंद्रित है, इसलिए जब मुझे कार्यक्षमता की आवश्यकता होती है, लेकिन जब मैं नहीं करता तो यह मेरे उपयोगकर्ताओं को नहीं तैनात किया जाता है अपने सॉफ्टवेयर को धीमा कर रहा है। – PlTaylor

+0

मैं इसे संबोधित करने के लिए सबसे अच्छा व्यक्ति नहीं हूं, लेकिन मुझे लगता है कि आप डीबग मोड में जो भी चलाते हैं उससे उत्पादन के लिए इसे अलग-अलग बनाने के लिए आप अपने web.config का उपयोग करने में सक्षम हो सकते हैं। इस तरह, आपको अपने निर्माण के लिए इसे हटाने के लिए याद रखने की आवश्यकता नहीं होगी। उम्मीद है कि कोई और इसे बेहतर ढंग से समझा सकता है और संभवतः समझा सकता है। – nycdan

+0

एक अन्य चाल जो मदद कर सकती है वह है कि आप जिस पंक्ति को हटाना चाहते हैं या अपनी बोली के लिए टिप्पणी करना चाहते हैं, उसके बाद // *** DEBUG *** डालना है। फिर उसके लिए एक प्रोजेक्ट खोज करें ताकि आप जल्दी से सभी लाइनों को ढूंढ सकें। – nycdan

0

उम्मीद है कि किसी को एक बेहतर जवाब के साथ सीएसवी प्रारूप में कंसोल के लिए आ जाएगा, लेकिन यहाँ क्या मैं एक ऐसी ही स्थिति में किया था है ...

मैं उत्पादन मूल्यों,,। वहां से, मैं एक्सेल में कॉपी और पेस्ट करता हूं, और एक्सेल को मेरे लिए कुछ ग्राफिंग करने देता है। यह काफी अच्छा काम करता था, लेकिन कैफीन संचालित विकास सत्र के दौरान पूरी तरह से परेशानी थी।

+0

मैं वर्तमान में इसे लॉग फ़ाइल में लॉग करता हूं, ऊपर प्रतिक्रिया देखें कि मैं एक अलग उत्तर की तलाश क्यों कर रहा हूं। – PlTaylor

0

क्या आप सिर्फ लूप के अंदर सरणी [i] के लिए कुछ परिभाषित और सरणी और लिख सकते हैं? फिर आप इसे पूरा करने के बाद इसका संदर्भ दे सकते हैं।

double[] x = new double[20]; 
double someVariable; 
for (int i = 0; i < 20; i++) 
{ 
    someVariable = Math.Pi() * i; 
    x[i] = someVariable; 
} 
+0

मेरे पास मेरे कोड में दर्जनों सॉल्वर हैं जो मैं प्रत्येक सॉल्वर में समाधान को लागू करने के बजाय एक एकल समाधान करना पसंद करूंगा, और मैं हलकों को जितना संभव हो उतना हल्का और तेज़ रखने की कोशिश कर रहा हूं और कुछ भी तैनात नहीं करना चाहता मेरे उपयोगकर्ताओं के लिए। – PlTaylor

1

उपयोग परफ़ॉर्मेंस और एक काउंटर कि परफ़ॉर्मेंस पढ़ सकते हैं करने के लिए है कि मूल्य को प्रकाशित करें। परफमन सभी साजिश आदि करता है। आपको बस परफॉर्म पर प्रकाशित करने की आवश्यकता है। अनजाने में यह बहुत अच्छी तरह से प्रलेखित नहीं है और यह मामूली नहीं है।(ठीक है, कम से कम यह नहीं अप्रबंधित C++ के लिए तुच्छ है जब मैं इस पर ध्यान देने गया था)

मैं इस एक समय पहले किया था और एक वर्ष MSJ लेख में प्रकाशित कुछ वर्गों का इस्तेमाल किया। (सीए 1998 या तो)

मैं कुछ ऑनलाइन दस्तावेज़ ढूंढने के लिए कोशिश करेंगे।

See this question for some links

This may also be useful

आप एक समाधान खोजने के लिए या इस काम करता है आप कृपया हमें बताएँ लिए हैं।

+0

यह निश्चित रूप से दिलचस्प है लेकिन शायद मैं वास्तव में करना चाहता हूं उससे कहीं अधिक शामिल है। – PlTaylor

0

मैं उपयोग करने के लिए SpPerfChart बहुत आसान और उपयोगी पाया है। बस उपयोगकर्ता नियंत्रण जोड़ें और अपने बदलते डेटा को इसमें इनपुट करें। आपको रीयलटाइम इनपुट करने वाले किसी भी नंबर का ग्राफिकल प्लॉट मिलेगा।

संबंधित मुद्दे