मैं एक फ़ाइल पढ़ रहा हूं और मैं या तो डेटा की एक पंक्ति (1700 अनुक्रमिक 17 बाइट्स के अनुक्रमिक पढ़ता है) या डेटा के कॉलम (1600 * 1700 से 17 बाइट्स को अलग करता है = 27,200 बाइट्स)। फ़ाइल या तो स्थानीय ड्राइव या रिमोट ड्राइव पर है। मैं 10 बार पढ़ता हूं इसलिए मैं प्रत्येक मामले में 272,000 बाइट डेटा में पढ़ने की उम्मीद करता हूं।अतिरिक्त पढ़ने के कारण नेटवर्क धीमी गति से
स्थानीय ड्राइव पर, मुझे लगता है कि मैं क्या उम्मीद करता हूं। अनुक्रमिक रूप से पढ़ने पर रिमोट ड्राइव पर मैं यह भी देखता हूं कि मैं क्या उम्मीद करता हूं लेकिन कॉलम पढ़ने पर, मुझे अतिरिक्त पढ़ने के टन मिलते हैं। वे 32,768 बाइट लंबा हैं और ऐसा प्रतीत नहीं होता है लेकिन वे 272,000 बाइट से कहीं भी 7 9 एमबी से 106 एमबी तक पहुंचने वाले डेटा की मात्रा बनाते हैं। यहाँ प्रक्रिया मॉनिटर का उपयोग कर उत्पादन है:
1:39:39.4624488 PM DiskSpeedTest.exe 89628 ReadFile \\BCCDC01\BCC-raid3\SeisWareInc Temp Dir\BPepers_Temp\Projects\PT_4\Horizons\BaseName3D_1\RR_AP SUCCESS Offset: 9,390,069, Length: 17 1:39:39.4624639 PM DiskSpeedTest.exe 89628 FASTIO_CHECK_IF_POSSIBLE \\BCCDC01\BCC-raid3\SeisWareInc Temp Dir\BPepers_Temp\Projects\PT_4\Horizons\BaseName3D_1\RR_AP SUCCESS Operation: Read, Offset: 9,390,069, Length: 17 1:39:39.4624838 PM DiskSpeedTest.exe 89628 ReadFile \\BCCDC01\BCC-raid3\SeisWareInc Temp Dir\BPepers_Temp\Projects\PT_4\Horizons\BaseName3D_1\RR_AP SUCCESS Offset: 9,388,032, Length: 32,768, I/O Flags: Non-cached, Paging I/O, Synchronous Paging I/O, Priority: Normal 1:39:39.4633839 PM DiskSpeedTest.exe 89628 ReadFile \\BCCDC01\BCC-raid3\SeisWareInc Temp Dir\BPepers_Temp\Projects\PT_4\Horizons\BaseName3D_1\RR_AP SUCCESS Offset: 9,417,269, Length: 17 1:39:39.4634002 PM DiskSpeedTest.exe 89628 FASTIO_CHECK_IF_POSSIBLE \\BCCDC01\BCC-raid3\SeisWareInc Temp Dir\BPepers_Temp\Projects\PT_4\Horizons\BaseName3D_1\RR_AP SUCCESS Operation: Read, Offset: 9,417,269, Length: 17 1:39:39.4634178 PM DiskSpeedTest.exe 89628 ReadFile \\BCCDC01\BCC-raid3\SeisWareInc Temp Dir\BPepers_Temp\Projects\PT_4\Horizons\BaseName3D_1\RR_AP SUCCESS Offset: 9,444,469, Length: 17 1:39:39.4634324 PM DiskSpeedTest.exe 89628 FASTIO_CHECK_IF_POSSIBLE \\BCCDC01\BCC-raid3\SeisWareInc Temp Dir\BPepers_Temp\Projects\PT_4\Horizons\BaseName3D_1\RR_AP SUCCESS Operation: Read, Offset: 9,444,469, Length: 17 1:39:39.4634529 PM DiskSpeedTest.exe 89628 ReadFile \\BCCDC01\BCC-raid3\SeisWareInc Temp Dir\BPepers_Temp\Projects\PT_4\Horizons\BaseName3D_1\RR_AP SUCCESS Offset: 9,441,280, Length: 32,768, I/O Flags: Non-cached, Paging I/O, Synchronous Paging I/O, Priority: Normal 1:39:39.4642199 PM DiskSpeedTest.exe 89628 ReadFile \\BCCDC01\BCC-raid3\SeisWareInc Temp Dir\BPepers_Temp\Projects\PT_4\Horizons\BaseName3D_1\RR_AP SUCCESS Offset: 9,471,669, Length: 17 1:39:39.4642396 PM DiskSpeedTest.exe 89628 FASTIO_CHECK_IF_POSSIBLE \\BCCDC01\BCC-raid3\SeisWareInc Temp Dir\BPepers_Temp\Projects\PT_4\Horizons\BaseName3D_1\RR_AP SUCCESS Operation: Read, Offset: 9,471,669, Length: 17 1:39:39.4642582 PM DiskSpeedTest.exe 89628 ReadFile \\BCCDC01\BCC-raid3\SeisWareInc Temp Dir\BPepers_Temp\Projects\PT_4\Horizons\BaseName3D_1\RR_AP SUCCESS Offset: 9,498,869, Length: 17 1:39:39.4642764 PM DiskSpeedTest.exe 89628 FASTIO_CHECK_IF_POSSIBLE \\BCCDC01\BCC-raid3\SeisWareInc Temp Dir\BPepers_Temp\Projects\PT_4\Horizons\BaseName3D_1\RR_AP SUCCESS Operation: Read, Offset: 9,498,869, Length: 17 1:39:39.4642922 PM DiskSpeedTest.exe 89628 ReadFile \\BCCDC01\BCC-raid3\SeisWareInc Temp Dir\BPepers_Temp\Projects\PT_4\Horizons\BaseName3D_1\RR_AP SUCCESS Offset: 9,498,624, Length: 32,768, I/O Flags: Non-cached, Paging I/O, Synchronous Paging I/O, Priority: Normal
सूचना अतिरिक्त मैं के साथ 32,768 के पढ़ता/ओ झंडे करने के लिए सेट गैर-कैश, पेजिंग आई/ओ, तुल्यकालिक पेजिंग आई/ओ, प्राथमिकता: सामान्य। ये अतिरिक्त पढ़े हैं जो इसे 272 केबी से 106 एमबी तक लेते हैं और धीमेपन का कारण बन रहे हैं। वे स्थानीय फ़ाइल से पढ़ने पर नहीं होते हैं या यदि मैं एक पंक्ति पढ़ रहा हूं तो यह सभी अनुक्रमिक है।
मैंने FILE_FLAG_RANDOM_ACCESS को सेट करने का प्रयास किया है लेकिन यह मदद नहीं करता है। इन अतिरिक्त पढ़ने और उन्हें रोकने के तरीके के बारे में कोई भी विचार ???
Vista 64 बिट सिस्टम पर परीक्षण चल रहे हैं। मैं किसी प्रोग्राम के लिए समस्या के साथ-साथ एक कंसोल प्रोग्राम का प्रदर्शन करने के लिए स्रोत कोड प्रदान कर सकता हूं जो परीक्षण करता है।
शायद आप उस कोड का हिस्सा पेस्ट कर सकते हैं जिसमें आप पढ़ते हैं। इससे कुछ कोडिंग गलती खत्म हो जाएगी, जो प्लेटफ़ॉर्म त्रुटियों से अधिक आम हैं :-) – Ariel