मेरे पास एक ऐसा एप्लिकेशन है जिसमें प्रदर्शन कारणों के लिए मेमोरी में ~ 1,000,000 तार हैं। मेरा आवेदन ~ 200 एमबी रैम खपत करता है।.NET स्ट्रिंग गहन अनुप्रयोगों पर मेमोरी पदचिह्न को कैसे कम करें?
मैं तारों से खपत स्मृति की मात्रा को कम करना चाहता हूं।
मुझे पता है .NET यूटीएफ -16 एन्कोडिंग (2 बाइट प्रति चार) में स्ट्रिंग का प्रतिनिधित्व करता है। मेरे आवेदन में अधिकांश तारों में शुद्ध अंग्रेजी वर्ण होते हैं, इसलिए उन्हें यूटीएफ -8 एन्कोडिंग में संग्रहीत करना यूटीएफ -16 की तुलना में 2 गुना अधिक कुशल होगा।
मानक स्ट्रिंग फ़ंक्शंस की अनुमति देते हुए यूटीएफ -8 एन्कोडिंग में स्मृति में स्ट्रिंग को स्टोर करने का कोई तरीका है? (StringComparison.OrdinalIgnoreCase के साथ ज्यादातर इंडेक्सऑफ सहित मेरी ज़रूरतें)।
बाइट सरणी या 'सूची' का उपयोग करने के बारे में क्या? यह सुनिश्चित नहीं है कि आपकी जरूरतों के लिए इन वस्तुओं के साथ काम करना कितना मुश्किल होगा। –
@ डीएक्सकेक, आप "चाहते हैं" या "ज़रूरत"? दिलचस्प जवाब या व्यावहारिक प्रदान करने के लिए अंतर महत्वपूर्ण है। –
क्या आपको पूरी तरह से सभी 1,000,000 तारों को स्मृति में लोड करना है? क्या आप स्मृति में इन सभी तारों के साथ वास्तव में क्या कर रहे हैं, इस बारे में अधिक जानकारी प्रदान कर सकते हैं? –