2012-09-12 9 views
10

हम एक विंडोज 8 मेट्रो-स्टाइल ऐप विकसित करने की सोच रहे हैं जो बहुत फोटो-भारी होगा, इसलिए हम यूआई प्रदर्शन के बारे में चिंतित हैं। आईओएस पर यह एक आसान निर्णय था (यूआई प्रदर्शन पर हमें यूआई प्रदर्शन प्राप्त करने के लिए एचटीएमएल पर ऑब्जेक्टिव-सी), लेकिन विंडोज 8 का शोध करना मुझे मुश्किल समय बता रहा है कि एक्सएएमएल कितनी तेजी से एचटीएमएल 5/सीएसएस से होगा।क्या विंडोज 8 एक्सएएमएल-आधारित ऐप्स एचटीएमएल/सीएसएस वाले लोगों की तुलना में काफी तेज हैं?

मैं XAML और एचटीएमएल 5 (जैसे this one) के बीच सामान्य की तुलना देखा है, और वहाँ एक SO answer कि छूता प्रदर्शन पर है, लेकिन उनके दावे या स्पष्टीकरण दें कि XAML तेजी से होता है करने के लिए डेटा उपलब्ध नहीं कराता।

जो मैंने पढ़ा है, से आईई 10 के प्रतिपादन इंजन का उपयोग करके एचटीएमएल 5/सीएसएस प्रस्तुत किया गया है, जिसका अर्थ है कि यह सुपर-देशी नहीं है और धीमा हो सकता है। लेकिन मुझे यकीन नहीं है कि एक्सएएमएल कैसे प्रदान किया जाता है, या सिर्फ "मूल" कैसे होता है।

क्या किसी ने दो तकनीकों के बीच प्रदर्शन तुलना की है, या क्या आप प्रत्येक को प्रस्तुत किए जाने के बारे में और स्पष्टीकरण के लिए लिंक प्रदान कर सकते हैं (दिमाग में प्रदर्शन के साथ)?

पहले XAML आप एचटीएमएल 5 की तुलना में बेहतर प्रदर्शन देने के कर सकते हैं:

+0

नया एक्सएएमएल कार्यान्वयन AFAIK सभी मूल है और प्रतिपादन के लिए अधिकांश भाग के लिए डायरेक्टएक्स का उपयोग करता है। लेकिन फिर, मुझे लगता है कि IE10 भी rendering के लिए DirectX का उपयोग करता है। – Krishna

+0

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

उत्तर

12

यहाँ इस पर मेरे विचार कर रहे हैं। यदि आप सीए ++ के साथ संयुक्त एक्सएएमएल का उपयोग करते हैं तो आपको WinRT के लिए सर्वश्रेष्ठ प्रदर्शन मिलेगा, क्योंकि सी ++ मूल कोड है। यदि आप सी # का उपयोग करते हैं तो आप सीएलआर (कॉमन लैंग्वेज रनटाइम) पर निर्भर करते हैं जो धीमी गति से मूल कोड है।
- Reference 1
- Reference 2

दूसरे, आप JavaScript लाइब्रेरी, जो आप शायद, यह प्रदर्शन पर असर पड़ेगा का एक बहुत शामिल करने के लिए जा रहे हैं। (jQuery, jqQuery प्लगइन्स, backbone.js, ...)

फिर, जैसा कि आपने कहा था, जेएस में HTML5 को आईई के इंजन का उपयोग करके प्रस्तुत किया जाता है। तो यह एक मुश्किल है। यह वास्तव में इस बात पर निर्भर करता है कि आप अपना कोड कैसे लिखेंगे। एक्सएएमएल और जेएस दोनों के लिए सर्वोत्तम प्रथाओं के लिए आप here देख सकते हैं।

व्यक्तिगत अनुभव से। मैंने XAML/C# का उपयोग करके एक ऐप लिखा था। यह विंडोज फोन 7 और 7.5 के बाद बेहतर लगता है। मुख्य रूप से क्योंकि वे .NET नीचे छंटनी। नया async और await मॉडल बहुत अच्छा है। आप अपने मामले में webservice या छवि प्रतिपादन के लिए आसानी से एसिंक्रोनस कॉल लागू कर सकते हैं।

लेकिन मुझे संख्याओं में भी रूचि है, इसलिए यदि कोई परीक्षण करता है, तो यह बहुत अच्छा होगा।

+0

यह सर्वोत्तम प्रथाओं का लिंक बहुत उपयोगी था, धन्यवाद, और इस बारे में जानकारी है कि प्रत्येक मंच कैसे काम करता है। –

+10

बस स्पष्ट करने के लिए, एक्सएएमएल रेंडरिंग इंजन शुद्ध सी ++/COM है चाहे आप सी ++ या सी # का उपयोग कर रहे हों। सी # में पीछे कोड अनिवार्य रूप से सीएलआर का उपयोग करता है लेकिन प्रतिपादन नहीं करता है। कोड से यूआई तत्वों तक पहुंचने के लिए एक प्रदर्शन जुर्माना है क्योंकि आपको सीएलआर-कॉम सीमा पार करना होगा, लेकिन यह न्यूनतम है। कोई भी प्रस्तुति जिसके लिए कोड (उदाहरण के लिए एनिमेशन) के साथ बातचीत की आवश्यकता नहीं होती है, उसी गति से चलनी चाहिए चाहे आप सी ++ या सी # में हों। जेएस के बारे में शेष नोट मान्य हैं, लेकिन यह ध्यान देने योग्य है कि WinRT पहले निष्पादन पर "जेआईटी संकलन" जावास्क्रिप्ट कोड करता है। –

+0

@ जेरेडबिएनज़-एमएसएफटी, एक फ्लिप व्यू (उदाहरण के लिए) एक ही सी ++ रेंडरिंग इंजन में जेएस कॉल का उपयोग करके फ्लिप व्यू सी # में होगा? या जेएस फ्लिप व्यू पूरी तरह से अलग-अलग लागू किया गया है, और जेएस/एचटीएमएल का उपयोग कस्टम नियंत्रण जैसे किया जा रहा है जेएस में होगा? –

3

आईई 10 में एक हार्डवेयर-त्वरित इंजन है, जिसमें एक GPU त्वरित एचटीएमएल 5 कैनवास शामिल है। इसका मतलब है कि प्रतिपादन एचटीएमएल 5 में जितना तेज़ हो सकता है क्योंकि यह एक्सएएमएल में है, क्योंकि दोनों तरीके से प्रस्तुत करने के लिए जीपीयू का उपयोग किया जाता है।

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

फिर आप ध्यान में रखना चाहते हैं कि पोर्टफोलियो को अन्य प्लेटफॉर्म पर पोर्ट करना आसान है।

2

गति वास्तव में एक बड़ी समस्या नहीं है जब तक कि आप कुछ ऐसा नहीं कर रहे हैं जिसके लिए कुछ तीव्र प्रक्रिया की आवश्यकता होती है, या समय की एक निश्चित विंडो में निष्पादित करने की आवश्यकता होती है।

असल में, कंप्यूटिंग ऑप्टिमाइज़ेशन पर इतनी तेजी से खर्च करने का समय बन गया है कि नई उपयोगी सुविधाओं को लागू करने में समय लग रहा है। केवल जहां आवश्यकता हो अनुकूलित करें अनुकूलित करें।

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

हम 64kb रैम और 400mhz CPUs पर अब नहीं चल रहे हैं।

बेशक यह माना जाता है कि आप ऐसा कुछ नहीं कर रहे हैं जो प्रोसेसर गहन है। यदि आप हैं, तो आप सभी गलत तकनीकों को एक साथ देख रहे हैं।

संबंधित मुद्दे