6

मैं अपने निरंतर एकीकरण प्रणाली पर काम कर रहा हूं, और मुझे अप्रत्याशित रूप से लंबे संकलन समयों के संचालन के हमारे सिस्टम को अनुकरण करने में दिलचस्पी है। संकलन को पूरा करने में लंबा समय लेने का कोई तरीका है? या शायद इसे किसी प्रकार के लूप में मजबूर करें जो संकलन के लिए बड़ी मात्रा में समय लगेगा? मैं थ्रेड के रूप में कुछ आसान ढूंढ रहा हूं। नींद() केवल निष्पादन के बजाय संकलन पर।क्या कोड लिखना संभव है जो लंबे संकलन के समय का कारण बनता है?

प्रीप्रोसेसर निर्देशों का उपयोग करने के बारे में कैसे?

कोई विचार?

+13

पागलपन रिकर्सिव टेम्पलेट्स के साथ सी ++ और टेम्पलेट मेटाप्रोग्रामिंग का उपयोग करें? –

+4

उस टिप्पणी को एक उत्तर में बदलें क्योंकि मैं इसके लिए ठीक से मतदान कर सकता हूं। –

+0

टेम्पलेट कोड में ackermann फ़ंक्शन आज़माएं। ओ (एन!) में फैक्टोरियल भी अच्छा कर सकता है। – BCS

उत्तर

9

यहां एक MSBuild sleep task है जो चाल चलाना चाहिए। अपनी आवश्यकता के लिए अपने .csproj फ़ाइल में पहलेबिल्ड लक्ष्य से, या wherever is appropriate पर इसे कॉल करें।

MSBuild Community Tasks में एक स्लीप कार्य भी है, इसलिए यदि आप अपने कुछ अन्य कार्यों का उपयोग करने की ज़रूरत है, तो मुझे इसके साथ जाना चाहिए, जिसे मैंने बहुत उपयोगी पाया है।

7

जाहिर है नींद का कार्य जाने का रास्ता है। लेकिन यदि आप सी # कंपाइलर को मनमाने ढंग से लंबे समय तक ले जाने के तरीकों में रूचि रखते हैं, तो एफवाईआई स्रोत कोड में समस्याओं को एन्कोड करना संभव है जो ओवरलोड रिज़ॉल्यूशन एल्गोरिदम को ओ (एन^एम) एल्गोरिदम निष्पादित करने के लिए मजबूर करता है। एन और एम काफी बड़ा चुनें और आप जितना चाहें उतना काम कर सकते हैं।

यदि आप रुचि रखते हैं तो उस विषय पर मेरा आलेख यहां दिया गया है।

http://blogs.msdn.com/ericlippert/archive/2007/03/28/lambda-expressions-vs-anonymous-methods-part-five.aspx

+0

बहुत बढ़िया! शानदार जानकारी के लिए धन्यवाद। –

2

मैं एक बार जो एक 16,000 लाइन स्विच बयान लिखा एक सहकर्मी था। यह हमेशा संकलन करने के लिए लिया गया, और फिर जब उसने इसे थोड़ा और विस्तार किया तो यह वास्तव में संकलक तोड़ दिया। किसी भी तरह से मुझे यकीन नहीं है कि यह आपके मन में था, हालांकि।

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