बस यह इंगित करने के लिए, मेरे अनुभव में डब्ल्यूपीएफ रेंडरर वास्तव में विंडोज़ फॉर्म की तुलना में थोड़ा धीमा है, डायरेक्टएक्स का उपयोग करने के बावजूद । ऐसा इसलिए है क्योंकि सीपीयू पक्ष पर बहुत सारी टेस्सेलेशन और लेआउट गणनाएं की जाती हैं, जो प्रभावी रूप से GPU का उपयोग करने के प्रदर्शन लाभ को रद्द कर देती हैं।
बस "डब्ल्यूपीएफ धीमा" या "डब्ल्यूपीएफ प्रदर्शन" के लिए चारों ओर Google पर जाएं और आपको भयभीत डेवलपर्स मिलेंगे जो WinForms को WPF में परिवर्तित करने के लिए अपना समय और प्रयास सीखने के लिए चौंक गए हैं क्योंकि GPUs के बारे में स्पिन बर्बाद हो गया है, क्योंकि परिणाम धीमा है मूल आवेदन की तुलना में।
हालांकि ... मैं यह कहूंगा। स्टाइल, ग्राफिकल क्षमताओं, डेवलपर उत्पादकता (डाटाबेसिंग), एनीमेशन, देखो और महसूस इत्यादि के मामले में डब्ल्यूपीएफ विंडोजफॉर्म से काफी बेहतर है। यदि प्रदर्शन वास्तव में एक मुद्दा है, तो कुछ क्षेत्रों पर आप अनुकूलित कर सकते हैं। उदाहरण के लिए, क्या आप जानते थे कि आप डब्ल्यूपीएफ में बिटमैप को लिखने के लिए एपीआई प्राप्त कर सकते हैं (लिखने योग्य बिटमैप क्लास देखें) स्मृति में जीडीआई जैसे ऑपरेशन करने के लिए? यह कुछ आश्चर्यजनक बातों के लिए डब्ल्यूपीएफ प्राइमेटिव्स की तुलना में लगभग 20x तेज है।
इसी प्रकार आप डेटाग्रिड्स आदि के प्रदर्शन में सुधार के लिए वर्चुअलाइजेशन का उपयोग कर सकते हैं। टेलीरिक के पास इंटरैक्टिव फ़्रेमेट्स पर 1,000,000 पंक्तियों के ग्रिड स्क्रॉलिंग का एक उदाहरण है।
निष्कर्ष में, आप क्या कर रहे हैं और वेब पर समान उदाहरण देखने के बारे में सोचें। क्या आप रीयल-टाइम वैज्ञानिक डेटाएक्विविंग और विज़ुअलाइजेशन या व्यवसाय ऐप की मानक लाइन कर रहे हैं? समान उदाहरणों की तुलना करना यह देखने के लिए कि ढांचा क्या सक्षम है, आपके निर्णय में आपकी मदद करेगा।
अद्यतन 2013 Q3
एक अद्यतन के रूप में, विभिन्न परियोजनाओं में मैं अब यूआई धागा बंद कुछ भी और सब कुछ ले जाकर तेजी से और WPF से तेजी से प्रदर्शन दिखाई दे रही है। जैसे यूआई के लिए यूआई थ्रेड छोड़ दें, टास्क समांतर लाइब्रेरी या आरएक्स का उपयोग करके जितना संभव हो उतना काम करें। सबकुछ एसिंक बनाएं और प्रतीक्षा करते समय यूआई थ्रेड को अवरुद्ध न करें।
बाध्यकारी त्रुटियों को हटा दें क्योंकि ये WPF प्रदर्शन समस्याओं में योगदान देते हैं।
आप गड़बड़ मुक्त एनीमेशन के लिए एक अलग थ्रेड पर एनिमेशन (उदा। एनिमेशन या प्रतीक्षा लोड) को स्थानांतरित कर सकते हैं। एनिमेटेड संक्रमण करते समय आप रेंडर-टू-बिटमैप का उपयोग कर सकते हैं।
लंबी कहानी छोटी है? डब्ल्यूपीएफ अनुप्रयोगों (साथ ही स्लिम यूआई) से शानदार प्रदर्शन करना संभव है लेकिन आपको थोड़ा और काम करने की जरूरत है!
क्या आप किसी विशिष्ट ऑपरेटिंग सिस्टम को लक्षित कर रहे हैं? –
नहीं, मैं यह जानने के लिए उत्सुक हूं कि विभिन्न प्रकारों के बीच प्रारंभिक प्रदर्शन अलग-अलग कैसे होता है और क्यों। –