विंडोज 7 के डिस्क कैश को कैसे बढ़ाएं


18

विंडोज 7 (64 बिट) के तहत, मैं 9000 मध्यम आकार की फाइलों के माध्यम से पढ़ रहा हूं। कुल में, 200 एमबी से अधिक डेटा है। जावा (JDK 1.6.21) का उपयोग करके मैं फ़ाइलों पर पुनरावृत्ति कर रहा हूँ। पहले 1400 या तो पूर्ण गति से चलते हैं लेकिन फिर गति 4ms प्रति फ़ाइल तक गिर जाती है। यह पता चला है कि मुख्य लागत केवल फाइलों को खोलने से होती है।

मैं फ़ाइलों का उपयोग कर खोल रहा हूं new FileInputStream(और निश्चित रूप से फ़ाइल लीक से बचने के लिए उन्हें समय पर बंद कर रहा हूं )। कुछ जांच के बाद, मैं देखता हूं कि विंडोज का डिस्क कैश केवल 100 एमबी या रैम का उपयोग कर रहा है, हालांकि मेरे पास 8 GiB उपलब्ध है। मैंने कैशसेट टूल का उपयोग करके कैश आकार को बढ़ाने की कोशिश की है, लेकिन मेरे द्वारा प्रदान किए गए किसी भी मूल्य को सीमा से बाहर माना जाता है

मैंने LargeSystemCacheरजिस्ट्री कुंजी को सक्षम करने का भी प्रयास किया है लेकिन (रिबूट करने के बाद) CacheSetउपकरण अभी भी इंगित करता है कि मैं 100 एमबी कैश का उपयोग कर रहा हूं (और परीक्षण के दौरान वृद्धि नहीं करता है)। क्या किसी के पास मेरी 9000 फाइलों को कैश करने के लिए विंडोज 7 को "प्रोत्साहित" करने का कोई सुझाव है?


3
आपको यह जानकारी कहां से मिली है कि डिस्क कैश के लिए केवल 100MB का उपयोग किया जाता है? मुझे क्या पता है कि विंडोज़ डिस्क कैशिंग के लिए डिफ़ॉल्ट रूप से सभी मुफ्त मेमोरी का उपयोग करता है। केवल 100 एमबी का मान मुझे एक न्यूनतम मूल्य की तरह लगता है।
रॉबर्ट

1
समस्या का हिस्सा जावा हो सकता है और यह जेवीएम है। JVM - publib.boulder.ibm.com/infocenter/javasdk/v6r0/… को ट्विक करने के लिए कई विकल्प हैं । मुझे लगता है कि आपका सबसे अच्छा दांव सिर्फ C ++ या FreeBASIC में लिखना है (दोनों जो मूल कोड के लिए संकलित हैं और केवल ओएस द्वारा सीमित है)।
नताली एडम्स

जवाबों:


4

सुपरफच सभी बड़ी फ़ाइल को कैश नहीं करता है, बस उन हिस्सों को एक्सेस किया जाता है। इसलिए उस फ़ाइल तक पहुँचने के लिए डिस्क रीड की आवश्यकता होती है। 210mb की खदान में एक डिस्क कैश विंडोज की उन सभी छोटी फाइलों से सब कुछ कैश कर सकता है। और प्रदर्शन ध्यान देने योग्य है। मुझे हालांकि संदेह है, कि इसका प्रभाव तेज प्रणालियों पर पड़ेगा।


2
सुपरफच क्या है, और यह इस प्रश्न से कैसे संबंधित है?
jpaugh

4

मैंने कैशसेट टूल का उपयोग करके कैश आकार को बढ़ाने की कोशिश की है, लेकिन मेरे द्वारा प्रदान किए गए किसी भी मूल्य को सीमा से बाहर माना जाता है।

  1. सुनिश्चित करें कि आप CacheSet "As Administrator" को स्पष्ट रूप से चलाते हैं। CacheSet कहेगा कि मान कुछ भी गलत होने पर सीमा से बाहर हो जाते हैं।
  2. सुनिश्चित करें कि कैश आकार 4 KB से विभाज्य है

इसके अलावा, मैंने देखा कि कैशेसेट को बड़े मूल्यों के साथ कुछ परेशानी है, संभवतः क्योंकि यह 2006 से 32-बिट अनुप्रयोग है। मैंने उसी एपीआई के चारों ओर 64-बिट प्रोग्राम लिखा था, जो 4GB से अधिक कैश आकार सेट करने की अनुमति देता है: http: / /blog.thecybershadow.net/2012/12/14/64-bit-cacheset/

नोट: CacheSet लेख में CacheMan का उल्लेख किया गया है, हालांकि नवीनतम संस्करण CacheSet के समान API का उपयोग करता प्रतीत होता है - यह प्रीसेट और अन्य कार्यक्षमता के गुच्छा के साथ UI में पैक किया गया है।


0

मुझे पता है कि यह पुराना है, लेकिन दूसरों के लिए जो इस समस्या में भाग लेते हैं : आपको मैन्युअल रूप से प्रशासनिक विशेषाधिकारों के साथ कैशेसेट चलाने की आवश्यकता है। यदि आप नहीं करते हैं, तो आपको आउटऑफ़रेंज त्रुटि मिलेगी; यह स्वचालित रूप से विशेषाधिकार नहीं मांगेगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.