मैं एमसीटीएस परीक्षा 70-536 माइक्रोस्कोफ्ट नेट फ्रेमवर्क एप्लिकेशन देव फाउंडेशन से अभ्यास की समस्याएं कर रहा हूं, और समस्याओं में से एक दो वर्ग, एक जेनेरिक, एक ऑब्जेक्ट प्रकार बनाना है जो दोनों एक ही काम करते हैं ; जिसमें एक पाश कक्षा का उपयोग करता है और हजारों बार फिर से चलाया जाता है। और टाइमर का उपयोग, दोनों का प्रदर्शन समय। C# generics question पर एक और पोस्ट थी जो एक ही खोज की तलाश में है लेकिन किसी ने जवाब नहीं दिया।जेनिक्स बनाम ऑब्जेक्ट प्रदर्शन
असल में यदि मेरे कोड में मैं जेनेरिक क्लास चलाता हूं तो पहले प्रक्रिया में लॉगर लेता है। यदि मैं ऑब्जेक्ट क्लास से पहले ऑब्जेक्ट क्लास चलाता हूं तो प्रक्रिया में अधिक समय लगता है। पूरा विचार यह साबित करना था कि जेनेरिक तेजी से प्रदर्शन करते हैं।
मैंने कुछ समय बचाने के लिए मूल उपयोगकर्ता कोड का उपयोग किया। मैंने विशेष रूप से कोड के साथ कुछ भी गलत नहीं देखा और परिणाम से परेशान था। क्या कोई एक असामान्य परिणाम क्यों समझा सकता है?
class Program
{
class Object_Sample
{
public Object_Sample()
{
Console.WriteLine("Object_Sample Class");
}
public long getTicks()
{
return DateTime.Now.Ticks;
}
public void display(Object a)
{
Console.WriteLine("{0}", a);
}
}
class Generics_Samle<T>
{
public Generics_Samle()
{
Console.WriteLine("Generics_Sample Class");
}
public long getTicks()
{
return DateTime.Now.Ticks;
}
public void display(T a)
{
Console.WriteLine("{0}", a);
}
}
static void Main(string[] args)
{
long ticks_initial, ticks_final, diff_generics, diff_object;
Object_Sample OS = new Object_Sample();
Generics_Samle<int> GS = new Generics_Samle<int>();
//Generic Sample
ticks_initial = 0;
ticks_final = 0;
ticks_initial = GS.getTicks();
for (int i = 0; i < 50000; i++)
{
GS.display(i);
}
ticks_final = GS.getTicks();
diff_generics = ticks_final - ticks_initial;
//Object Sample
ticks_initial = 0;
ticks_final = 0;
ticks_initial = OS.getTicks();
for (int j = 0; j < 50000; j++)
{
OS.display(j);
}
ticks_final = OS.getTicks();
diff_object = ticks_final - ticks_initial;
Console.WriteLine("\nPerformance of Generics {0}", diff_generics);
Console.WriteLine("Performance of Object {0}", diff_object);
Console.ReadKey();
}
}
आपको अपने सवालों के जवाब स्वीकार करना चाहिए। – SLaks
आपको 'स्टॉपवॉच' कक्षा का उपयोग करना चाहिए। – SLaks
आपको उस उत्तर को स्वीकार करने के लिए अपने प्रत्येक प्रश्न के लिए दिए गए सर्वोत्तम उत्तर के बगल में खोखले चेक पर क्लिक करना चाहिए। – SLaks