मैंने अपनी परियोजनाओं को .NET 4.0 (VS2010 के साथ) में अपग्रेड करने के बाद मुझे एहसास हुआ कि वे .NET 2.0 (VS2008) में धीमे गति से चलते हैं। तो मैं बेंचमार्क के लिए विभिन्न लक्ष्य फ़्रेमवर्क के साथ दोनों VS2008 & VS2010 में एक साधारण सांत्वना आवेदन का निर्णय लिया:.NET 4.0 रनटाइम .NET 2.0 रनटाइम से धीमे हैं?
- VS2008
- लक्ष्य फ्रेमवर्क 2.0: ~ 0.25 सेकंड
using System; using System.Diagnostics; using System.Reflection; namespace RuntimePerfTest { class Program { static void Main(string[] args) { Console.WriteLine(Assembly.GetCallingAssembly().ImageRuntimeVersion); Stopwatch sw = new Stopwatch(); while (true) { sw.Reset(); sw.Start(); for (int i = 0; i < 1000000000; i++) { } TimeSpan elapsed = sw.Elapsed; Console.WriteLine(elapsed); } } } }
यहाँ परिणाम है
- लक्ष्य फ्रेमवर्क 3.0: ~ 0.25 सेकंड
- लक्ष्य फ्रेमवर्क 3.5: ~ 0.25 सेकंड
- लक्ष्य फ्रेमवर्क 2.0: ~ 0.25 सेकंड
- VS2010
- लक्ष्य फ्रेमवर्क 2.0: ~ 3.8 सेकंड
- लक्ष्य फ्रेमवर्क 3.0: ~ 3.8 सेकंड
- लक्ष्य फ्रेमवर्क 3.5: ~ 1.51 सेकंड
- लक्ष्य फ्रेमवर्क 3.5 ग्राहकों का प्रोफाइल: ~ 3.8 सेकंड
- लक्ष्य फ्रेमवर्क 4.0: ~ 1.01 सेकंड
- लक्ष्य फ्रेमवर्क 4.0 ग्राहक प्रोफ़ाइल: ~ 1.01 सेकंड
मेरे प्रारंभिक निष्कर्ष जाहिर है कि VS2008 तेजी VS2010 के साथ संकलित प्रोग्राम्स से काम कर के साथ संकलित प्रोग्राम्स।
क्या कोई भी VS2008 और VS2010 के बीच उन प्रदर्शन परिवर्तनों को समझा सकता है? और VS2010 के अंदर अलग-अलग लक्ष्य ढांचे के बीच?
क्या आप इन्हें विजुअल स्टूडियो में डिबगर के माध्यम से चला रहे हैं या रिलीज मोड में ऐप्स चला रहे हैं? –
क्या आपने बाह्य प्रभाव को कम करने के लिए कई रनों का परीक्षण किया था? जैसा कि यह खड़ा है, परिणाम अकेले मौके के कारण हो सकते हैं। भले ही यह * दिखता है * निर्णायक, एक भी रन इस परीक्षण में लगभग * नहीं * महत्व प्रदान करेगा। –
क्या आपने इसे वीएस के बाहर चलाने की कोशिश की है? – eflles