मैं वर्तमान में जहाजों के लर्निंग XNA 4.0 पढ़ रहा हूँ और मैंने देखा है कि लेखक एक struct मूल्य, प्रदर्शन के लिए कोई संबंध के साथ इस तरह के रूप Vector2
या Rectangle
कई बार बनाने की संभावना है।प्रदर्शन को महत्व देता
उदाहरण के लिए, एक SquareCollision()
विधि, कि दो खेल संस्थाओं के बीच टकराव की जाँच करता है किसी भी अधिक struct बनाने के बिना बस प्रत्येक खेल इकाई का अपना Rectangle
क्षेत्र पकड़ और क्षेत्रों की तुलना होने के दो Rectangle
रों हर बार यह कहा जाता है बनाता है, बजाय मान।
मैं कई स्थानों में इस पैटर्न में कई बार देखा है और है कि मुझे आश्चर्य बनाया:
struct मानों सी # में नगण्य के निर्माण है?
क्या यह वास्तव में माइक्रो-अनुकूलन अनुभाग के अंतर्गत आता है?
शायद क्योंकि मेरे अनुभव जावा के साथ ज्यादातर है, ValueType
रों की अवधारणा मेरे लिए अजीब है, लेकिन ऐसा लगता है कि एक struct से एक मूल्य पुनः बनाने (और यह निर्माता है कह कर बुलाया) कई बार संसाधनों का एक विशाल बेकार की तरह लगता है।
क्या आपने इसे प्रोफाइल करने का प्रयास किया था? –
मुझे लगता है कि यह प्रोफ़ाइल के लिए थोड़ा मुश्किल है, क्योंकि वास्तव में महत्वपूर्ण बात यह है कि समग्र प्रदर्शन हिट होता है। यहां तक कि यदि एक ही मूल्य को पुनर्निर्मित करना फ़ील्ड का उपयोग करने से 10,000 गुना धीमा है, तो यह अभी भी कम होगा यदि यह प्रदर्शन पर केवल 0.0001% हिट है। (मनमाने ढंग से संख्याओं के लिए खेद है, बस यह सुनिश्चित करने की कोशिश कर रहा हूं कि मुझे समझा जा रहा है।) जो मैं समझने की कोशिश कर रहा हूं वह यह है कि वास्तव में यह कितना बुरा है (अगर बिल्कुल) और क्या मुझे इसे करने से बचने की कोशिश करनी चाहिए या नहीं। – Acidic
आप कोड को दिखाकर प्रश्न को थोड़ा और ठोस बना सकते हैं। गलतफहमी रोकता है। –