मैं लंबे कैनवास (सोच स्ट्रिपचार्ट) पर बहुत सी रेखाएं खींच रहा हूं और इसे निम्न स्तर के ज्यामिति वर्गों का उपयोग करके और उन्हें ठंडा करने, प्रदर्शन के लिए काफी अच्छी तरह से ट्यून किया है। यह नाटकीय रूप से प्रदर्शन में सुधार हुआ है, लेकिन कैनवास में कुछ हज़ार आइटम लोड करने में अभी भी कुछ सेकंड लगते हैं। मैंने एप्लिकेशन पर एक प्रदर्शन विश्लेषण चलाया, और ऐसा लगता है कि प्रत्येक कॉल द्वारा canvas.children.add()
पर समय का एक बड़ा प्रतिशत लिया जाता है। मैंने पढ़ा है कि यह एक हल्का कॉल होना चाहिए, और चूंकि मैं इसे एक विधि में कई बार बुला रहा हूं, इसलिए इसे किसी भी चीज को भारी करने की कोशिश नहीं करनी चाहिए ... क्या संभवतः कोई अन्य कारण हो सकता है बहुत अधिक समय? और किसी भी तरह से मैं इसे तेज कर सकता हूँ?डब्ल्यूपीएफ कैनवास प्रदर्शन- kids.add कई बार
प्रदर्शन भयानक नहीं है, लेकिन मुझे डर है कि बाद में मुझे समस्या का अधिक सेट हो सकता है जब मुझे डेटा के बड़े सेट से निपटने की आवश्यकता होती है।
बस संदर्भ के लिए, ऐसा लगता है कि इसे इस नमूने में 1400 बार कहा जाता है, और यह आधुनिक/तेज़ लैपटॉप पर लगभग 3 सेकंड CPU समय लेता है।
कैनवास अन्य नियंत्रणों के एक पदानुक्रम में निहित है, इसलिए मैं उत्सुक हूं कि यदि वे इसमें योगदान दे रहे हैं।
अतिरिक्त नोट: मैं कैनवास पर एक विशिष्ट ऊंचाई भी सेट नहीं कर रहा हूं, क्योंकि यह ग्रिड पैरेंट कंटेनर को भरने के लिए सेट है। क्या यह समस्या का स्रोत हो सकता है?
जहां तक प्रदर्शन का सवाल है, आप http को आजमा सकते हैं : //msdn.microsoft.com/en-us/library/system.windows.media.streamgeometry.aspx स्ट्रीम ज्यामिति जो ड्रॉइंग संदर्भ से सबसे हल्का वजन निर्माण है। –
हाँ, पहले से ही स्ट्रीम ज्यामिति का उपयोग कर रहा है, और अच्छे परिणामों के साथ। धन्यवाद –