[c#] मेमोरी में प्रवेश करें और फिर फाइल को लिखें


0 Answers

यह सिर्फ एक उदाहरण है, लेकिन आप इस विचार को प्राप्त कर सकते हैं।

आपके पास वास्तव में समाधान था, आपको इसे करने की ज़रूरत थी ...

for (int i=0; i<7; i++)
{
    var entries = new List<string>();

    for (int j=0; j<RecordsCount; j++)
    {
        SomeOperation();

        // Log into list
        entries.Add("Operation #" + j + " results: " + bla bla bla);
    }

    // Log all entries to file at once.
    File.AppendAllLines("logFile.txt", entries);
}
Question

मुझे कुछ जानना है, मेरे पास यह लूप है जो सभी दिनों (7 गुना) के लिए चलता है और उसके अंदर एक और पाश है, जो फ़ाइल में सभी रिकॉर्ड के लिए चलाता है। (लगभग 100000), तो सभी अपने सभी 700000 बार में, अब मैं प्रत्येक लूप में प्रत्येक प्रोसेसिंग में लॉग इन करना चाहता हूं, और एक फाइल में लॉग इन करना चाहता हूं, हम पहली बार 1 लूप के भीतर और पहली बार 2 लूप को लॉग इन करते हैं, हम हर बार लॉग इन करते हैं, जो फ़ाइल में किया जाता है लेकिन समस्या यह है कि यदि मैं हर बार लॉग इन करना चाहता हूं, तो बहुत सारे आईओ संचालन के कारण, यह बहुत खराब प्रदर्शन को नुकसान पहुंचाएगा, जो कि मैं सोच रहा था कि ऐसा कोई रास्ता नहीं है, मैं मेमोरी (मेमोरी स्ट्रीम या कुछ भी) और फिर बाहरी लूप के अंत में, सभी मेमोरी स्ट्रीम डेटा को लॉग करने के लिए लॉग इन करें?

कहो अगर मेरे पास है

for (int i=0; i<7; i++)
{
  for (int j=0; j<RecordsCount; j++)
  {
    SomeOperation();
    // I am logging to a file here right now
  }
}

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

ps: यहां एक लॉगर है जो मुझे http://www.codeproject.com/Articles/23424/TracerX-Logger-and-Viewer-for-NET मिला है, लेकिन यदि आवश्यक हो तो मैं किसी अन्य कस्टम लॉगर या कुछ अन्य का उपयोग कर सकता हूं

संपादित करें: अगर मैं मेमोरी स्ट्रीम का उपयोग करता हूं, और फिर इसे फाइल में लिखता हूं, तो क्या मुझे File.AppendAllLines बेहतर प्रदर्शन दिया File.AppendAllLines जैसा कि योरि और जेएमबीक द्वारा जवाब में सुझाया गया है, अगर यह भी मुझे जेरेमी की टिप्पणी पर कोई लाभ मिलेगा?






Related