हमें एक अनियमित ग्रिड में बड़ी संख्या में छोटे तारों को प्रदर्शित करने वाले C# Windows Forms एप्लिकेशन के लिए पाठ प्रतिपादन को अनुकूलित करने की आवश्यकता है। किसी भी समय 5000 से अधिक कोशिकाएं दिखाई दे सकती हैं जो प्रति सेकंड 4 बार अपडेट होती हैं। फ़ॉन्ट परिवार और आकार कोशिकाओं में सुसंगत है, हालांकि रंग सेल से सेल में भिन्न हो सकता है, जैसा कि बोल्ड/इटैलिक/सादा होगा।विंडोज फॉर्म में पाठ प्रस्तुत करने के लिए सबसे तेज़ एपीआई?
मैं होने के बारे में TextRenderer.DrawText
बनाम Graphics.DrawString
वेब पर परस्पर विरोधी जानकारी देखा है सबसे तेज/सबसे अच्छा है, जो Win32 स्तर पर एक GDI बनाम GDI+ तुलना करने के लिए कम कर देता है।
मैंने विंडोज एक्सपी बनाम विंडोज विस्टा पर मूल रूप से अलग-अलग परिणाम भी देखे हैं, लेकिन मेरा मुख्य लक्ष्य विंडोज एक्सपी है। लेख WinFX और DirectX 10 के तहत बहुत उपयोगी हैं :-)
यहां सबसे अच्छा तरीका क्या है? मुझे एक छोटी सी ++/सीएलआई परत शुरू करने और अधिक प्रदर्शन को निचोड़ने के लिए डिवाइस संदर्भ हैंडलिंग को अनुकूलित करने से डर नहीं है, लेकिन मुझे किस दिशा में लेने के बारे में कुछ निश्चित सलाह चाहिए।
संपादित करें: प्रारंभिक प्रतिक्रियाओं के लिए धन्यवाद। मैं पृष्ठभूमि बिटमैप प्रतिपादन और जीडीआई समकक्ष कॉल के साथ चिपके हुए संयोजन का प्रयास कर रहा हूं।
ब्लॉग लिंक में नमूना ऐप वह है जिसे मैंने Vista और XP के बीच बड़ा अंतर देखा - मेरे Vista पीसी, जीडीआई और जीडीआई + पर बराबर थे, जबकि XP पर मुझे 6x अंतर लेखक का उल्लेख है .. यह शायद एक Vista ड्राइवर मुद्दा है, लेकिन यहां कुछ कठिनाइयों को हाइलाइट करता है - धन्यवाद! –
ऐतिहासिक नोट: ExtTextOut कुछ कार्ड/ड्राइवरों पर ठोस आयत खींचने का सबसे तेज़ तरीका होता था :) –