2011-11-28 17 views
7

जहां तक ​​मुझे पता है कि डब्ल्यूपीएफ अनुप्रयोगों को विंडोज फॉर्म अनुप्रयोगों से तेज़ी से काम करना चाहिए क्योंकि डब्ल्यूपीएफ अनुप्रयोग जीडीआई के बजाय प्रतिपादन के लिए डायरेक्टएक्स का उपयोग करते हैं। लेकिन किस तरह का आवेदन तेजी से शुरू होगा: डब्ल्यूपीएफ या विंडोज फॉर्म? क्या स्टार्ट टाइम मोटे तौर पर वही होगा या एक प्रकार का एप्लीकेशन दूसरे की तुलना में काफी तेज़ होगा?किस प्रकार का एप्लिकेशन तेज़ी से शुरू होता है: विंडोज फॉर्म या डब्ल्यूपीएफ?

मैं किसी विशिष्ट ऑपरेटिंग सिस्टम को लक्षित नहीं कर रहा हूं।

+0

क्या आप किसी विशिष्ट ऑपरेटिंग सिस्टम को लक्षित कर रहे हैं? –

+0

नहीं, मैं यह जानने के लिए उत्सुक हूं कि विभिन्न प्रकारों के बीच प्रारंभिक प्रदर्शन अलग-अलग कैसे होता है और क्यों। –

उत्तर

2

मुझे लगता है कि स्टार्ट टाइम उसी के बारे में होगा .. मैंने हाल ही में कुछ WPF अनुप्रयोग बनाए हैं और कुछ मामलों में मुझे लगता है कि शुरुआती लोडटाइम जीत फ़ॉर्म की तुलना में थोड़ा धीमा है, लेकिन यह अधिक नहीं है और WPF अधिक नहीं है जब अनुप्रयोग चालू होता है और

0

मेरे अनुभव से, मुझे लगता है कि डब्ल्यूपीएफ Winforms की तुलना में शुरुआत में काफी प्रतिक्रियाशील है। हालांकि, सवाल कठिन है, विशेष रूप से यह मानते हुए कि डब्ल्यूपीएफ में दूसरा और इसके विपरीत हो सकता है।

मैं इस लेख के दर्शन का पालन करेंगे: http://joshsmithonwpf.wordpress.com/2007/09/05/wpf-vs-windows-forms/

WPF और Winforms सिर्फ एक ही उपकरण नहीं हैं, और उनमें से कोई भी दूसरे के लिए स्थानापन्न माना जाता है;)

सवाल एक है इस मंच पर बहुत सारे डुप्लीकेट्स, कृपया यहां एक लिंक और चर्चा के लिए जांचें और उनमें से सभी: WPF vs. Windows Forms

+0

आपने कभी भी विंडोज एक्सपी पर डब्ल्यूपीएफ अनुप्रयोगों का उपयोग करने की कोशिश नहीं की है :) –

3

बस यह इंगित करने के लिए, मेरे अनुभव में डब्ल्यूपीएफ रेंडरर वास्तव में विंडोज़ फॉर्म की तुलना में थोड़ा धीमा है, डायरेक्टएक्स का उपयोग करने के बावजूद । ऐसा इसलिए है क्योंकि सीपीयू पक्ष पर बहुत सारी टेस्सेलेशन और लेआउट गणनाएं की जाती हैं, जो प्रभावी रूप से GPU का उपयोग करने के प्रदर्शन लाभ को रद्द कर देती हैं।

बस "डब्ल्यूपीएफ धीमा" या "डब्ल्यूपीएफ प्रदर्शन" के लिए चारों ओर Google पर जाएं और आपको भयभीत डेवलपर्स मिलेंगे जो WinForms को WPF में परिवर्तित करने के लिए अपना समय और प्रयास सीखने के लिए चौंक गए हैं क्योंकि GPUs के बारे में स्पिन बर्बाद हो गया है, क्योंकि परिणाम धीमा है मूल आवेदन की तुलना में।

हालांकि ... मैं यह कहूंगा। स्टाइल, ग्राफिकल क्षमताओं, डेवलपर उत्पादकता (डाटाबेसिंग), एनीमेशन, देखो और महसूस इत्यादि के मामले में डब्ल्यूपीएफ विंडोजफॉर्म से काफी बेहतर है। यदि प्रदर्शन वास्तव में एक मुद्दा है, तो कुछ क्षेत्रों पर आप अनुकूलित कर सकते हैं। उदाहरण के लिए, क्या आप जानते थे कि आप डब्ल्यूपीएफ में बिटमैप को लिखने के लिए एपीआई प्राप्त कर सकते हैं (लिखने योग्य बिटमैप क्लास देखें) स्मृति में जीडीआई जैसे ऑपरेशन करने के लिए? यह कुछ आश्चर्यजनक बातों के लिए डब्ल्यूपीएफ प्राइमेटिव्स की तुलना में लगभग 20x तेज है।

इसी प्रकार आप डेटाग्रिड्स आदि के प्रदर्शन में सुधार के लिए वर्चुअलाइजेशन का उपयोग कर सकते हैं। टेलीरिक के पास इंटरैक्टिव फ़्रेमेट्स पर 1,000,000 पंक्तियों के ग्रिड स्क्रॉलिंग का एक उदाहरण है।

निष्कर्ष में, आप क्या कर रहे हैं और वेब पर समान उदाहरण देखने के बारे में सोचें। क्या आप रीयल-टाइम वैज्ञानिक डेटाएक्विविंग और विज़ुअलाइजेशन या व्यवसाय ऐप की मानक लाइन कर रहे हैं? समान उदाहरणों की तुलना करना यह देखने के लिए कि ढांचा क्या सक्षम है, आपके निर्णय में आपकी मदद करेगा।

अद्यतन 2013 Q3

एक अद्यतन के रूप में, विभिन्न परियोजनाओं में मैं अब यूआई धागा बंद कुछ भी और सब कुछ ले जाकर तेजी से और WPF से तेजी से प्रदर्शन दिखाई दे रही है। जैसे यूआई के लिए यूआई थ्रेड छोड़ दें, टास्क समांतर लाइब्रेरी या आरएक्स का उपयोग करके जितना संभव हो उतना काम करें। सबकुछ एसिंक बनाएं और प्रतीक्षा करते समय यूआई थ्रेड को अवरुद्ध न करें।

बाध्यकारी त्रुटियों को हटा दें क्योंकि ये WPF प्रदर्शन समस्याओं में योगदान देते हैं।

आप गड़बड़ मुक्त एनीमेशन के लिए एक अलग थ्रेड पर एनिमेशन (उदा। एनिमेशन या प्रतीक्षा लोड) को स्थानांतरित कर सकते हैं। एनिमेटेड संक्रमण करते समय आप रेंडर-टू-बिटमैप का उपयोग कर सकते हैं।

लंबी कहानी छोटी है? डब्ल्यूपीएफ अनुप्रयोगों (साथ ही स्लिम यूआई) से शानदार प्रदर्शन करना संभव है लेकिन आपको थोड़ा और काम करने की जरूरत है!