xobotos में reputed performance gains के बारे में उत्सुक, मैंने बाइनरी पेड़ benchmark code की जांच की।एक्सोबोटोस: सी # बाइनरी पेड़ बेंचमार्क एक संरचना का उपयोग क्यों करता है?
binary tree node कीजावा संस्करण है:
private static class TreeNode
{
private TreeNode left, right;
private int item;
}
C# version है:
struct TreeNode
{
class Next
{
public TreeNode left, right;
}
private Next next;
private int item;
}
मैं सोच रहा हूँ क्या यहाँ एक struct उपयोग करने का लाभ, अगला व पिछला संकेत के बाद से अभी भी एक कक्षा में encapsulated हैं।
ठीक है, एक पत्ती नोड शुद्ध मूल्य प्रकार हैं क्योंकि उन्हें बाएं और दाएं पॉइंटर्स की आवश्यकता नहीं है। एक ठेठ बाइनरी पेड़ में जहां आधा नोड पत्तियां हैं, इसका मतलब है वस्तुओं की संख्या में 50% की कमी। फिर भी, सूचीबद्ध प्रदर्शन लाभ बहुत अधिक प्रतीत होता है।
प्रश्न: क्या इसके लिए और कुछ है?
इसके अलावा, चूंकि मैंने सी # (धन्यवाद Xamarin!) में पेड़ नोड्स को परिभाषित करने के बारे में सोचा नहीं होगा, तो अन्य डेटा संरचनाओं को गैर-स्पष्ट तरीके से structs का उपयोग करने से क्या फायदा हो सकता है? (भले ही यह थोड़ा ऑफ-विषय और खुला समाप्त हो।)
और आप किस प्रदर्शन लाभ का उल्लेख करते हैं? – leppie
अब कोड को देखकर, यह स्पष्ट है कि किसी ने वास्तव में यह जानने के बिना सी कोड से कॉपी किया है (या कम से कम इसे बहुत ही बेतुका तरीके से कर रहा है)। वास्तव में प्रदर्शन की जांच के लिए – leppie