मेरी वेब सेवा के अंदर, मैं स्थानीय डिस्क पर एक फ़ाइल में एक फाइलस्ट्रीम खोलता हूं। मैं इसे सेवा के जीवनकाल के लिए चारों ओर रखता हूं। प्रत्येक क्वेरी में आने के लिए, मैं डिस्क पढ़ने के लिए filestream का उपयोग करें। मैं प्रत्येक क्वेरी पर फ़ाइलस्ट्रीम को फिर से खोलने से बचने के लिए ऐसा करता हूं। इस पथ की लेटेंसी महत्वपूर्ण है (कुछ एमएस से कम होना चाहिए)। मैं डिस्क IO समय को 0.1ms या उससे कम रखने के लिए एसएसडी का उपयोग करता हूं।क्या सी # फिलस्ट्रीम लंबे समय तक खुला रहता है?
लंबे समय तक (दिन) पर फाइलस्ट्रीम 'खराब हो' (अमान्य हो सकता है) कर सकते हैं। क्या हर क्वेरी पर फाइलस्ट्रीम को फिर से खोलना सुरक्षित है? अगर मुझे फिर से खोलना है, तो एक बार फिर से एक बार फिर से एक बार फिर से खोलने का उपरांत क्या है?
क्या कोई कारण है कि आप स्थिर स्मृति में फ़ाइलों को सामग्री लोड नहीं कर रहे हैं यदि आप विलंबता के बारे में चिंता कर रहे हैं? मुझे लगता है कि प्रश्नों को तेजी से सामग्री तक पहुंचने के बजाय आप किस पैटर्न का उपयोग कर रहे हैं। – AdamV
फ़ाइल मेमोरी में फ़िट होने के लिए बहुत बड़ी है। मेरे पास एक इंडेक्स है जो मुझे सीधे ऑफसेट की तलाश करने और वहां से पढ़ने की सुविधा देता है। यह 1 आईओ से अधिक नहीं होना चाहिए। डेटा पढ़ने की मात्रा छोटी है। – user201511
क्या आपने एक फ़ाइल स्ट्रीम खोलने और बंद करने के विरुद्ध एक फ़ाइल स्ट्रीम खोलने का प्रयास करने के लिए एक परीक्षण दोहन लिखा है। मैं सुझाव दूंगा कि आप इसके खिलाफ एक परीक्षण लिखने और परिणामों की तुलना करने का प्रयास करें। – AdamV