วิธีเพิ่มดิสก์แคชของ Windows 7


18

ภายใต้ Windows 7 (64 บิต) ฉันกำลังอ่านไฟล์ขนาด 9000 พอสมควร โดยรวมมีข้อมูลมากกว่า 200 MB ใช้ Java (JDK 1.6.21) ฉันกำลังวนซ้ำไฟล์ 1,400 คนแรกหรือมากกว่านั้นใช้ความเร็วเต็ม แต่ความเร็วลดลงเหลือ 4ms ต่อไฟล์ ปรากฎว่าค่าใช้จ่ายหลักเกิดขึ้นเพียงแค่เปิดไฟล์

ฉันกำลังเปิดไฟล์โดยใช้new FileInputStream(และแน่นอนปิดในเวลาเพื่อหลีกเลี่ยงการรั่วไหลของไฟล์) หลังจากการตรวจสอบบางอย่างฉันเห็นว่าแคชดิสก์ของ Windows ใช้ RAM เพียง 100 MB หรือมากกว่านั้นถึงแม้ว่าฉันจะมี 8 GiB ก็ตาม ฉันได้พยายามเพิ่มขนาดแคชใช้CacheSetเครื่องมือ แต่ค่าใด ๆ ผมให้ได้รับการพิจารณาออกจากช่วง

ฉันได้ลองเปิดใช้งานLargeSystemCacheคีย์รีจิสทรีด้วย แต่ (หลังจากรีบูต) CacheSetเครื่องมือยังระบุว่าฉันใช้แคช 100 MB (และไม่เพิ่มขึ้นระหว่างการทดสอบ) ไม่มีใครมีคำแนะนำในการ "สนับสนุน" Windows 7 เพื่อแคชไฟล์ 9000 ของฉันหรือไม่


3
คุณได้รับข้อมูลจากที่ใดเพียง 100MB สำหรับแคชดิสก์ จากสิ่งที่ฉันรู้ว่า Windows ใช้เป็นค่าเริ่มต้นหน่วยความจำฟรีทั้งหมดสำหรับการแคชดิสก์ มูลค่าเพียง 100MB ดูเหมือนว่าฉันจะชอบค่าขั้นต่ำ
Robert

1
ส่วนหนึ่งของปัญหาอาจเป็น Java และเป็น JVM มีตันของตัวเลือกในการปรับแต่งเป็น JVM - publib.boulder.ibm.com/infocenter/javasdk/v6r0/... ฉันคิดว่าทางออกที่ดีที่สุดของคุณคือเขียนใน C ++ หรือ FreeBASIC (ทั้งคอมไพล์โค้ดเนทีฟและ จำกัด เฉพาะสิ่งที่ระบบปฏิบัติการอนุญาตเท่านั้น)
Natalie Adams

คำตอบ:


4

Superfetch ไม่ได้แคชไฟล์ขนาดใหญ่ทั้งหมดเพียงแค่ส่วนที่เข้าถึงได้ ดังนั้นการเข้าถึงไฟล์นั้นจำเป็นต้องอ่านดิสก์ ดิสก์แคชที่ 210mb เช่นเดียวกับฉันสามารถแคชทุกอย่างจากไฟล์เล็ก ๆ เหล่านั้นใน Windows และประสิทธิภาพที่เห็นได้ชัดเจนคือ ฉันสงสัยว่ามันจะส่งผลกระทบต่อระบบที่เร็วขึ้น


2
superfetch คืออะไรและเกี่ยวข้องกับคำถามนี้อย่างไร
jpaugh

4

ฉันพยายามเพิ่มขนาดแคชโดยใช้เครื่องมือ CacheSet แต่ค่าใด ๆ ที่ฉันมีให้นั้นถือว่าอยู่นอกช่วง

  1. ตรวจสอบให้แน่ใจว่าคุณเรียกใช้ CacheSet "As Administrator" อย่างชัดเจน CacheSet จะบอกว่าค่านั้นอยู่นอกช่วงเมื่อมีสิ่งใดผิดพลาด
  2. ตรวจสอบให้แน่ใจว่าขนาดแคชนั้นหารด้วย 4 KB

นอกจากนี้ฉันสังเกตเห็นว่า CacheSet มีปัญหาบางอย่างเกี่ยวกับค่าขนาดใหญ่อาจเป็นเพราะเป็นแอปพลิเคชัน 32 บิตจากปี 2549 ฉันไปและเขียนโปรแกรม 64 บิตรอบ ๆ API เดียวกันซึ่งอนุญาตให้ตั้งค่าขนาดแคชมากกว่า 4GB: http: / /blog.thecybershadow.net/2012/12/14/64-bit-cacheset/

หมายเหตุ: บทความ CacheSet กล่าวถึง CacheMan อย่างไรก็ตามดูเหมือนว่ารุ่นล่าสุดจะใช้ API เดียวกับ CacheSet ซึ่งเป็นเพียงแค่บรรจุใน UI ที่มีค่าที่ตั้งไว้ล่วงหน้าและฟังก์ชั่นอื่น ๆ


0

ฉันรู้ว่านี่เก่า แต่สำหรับคนอื่นที่พบปัญหานี้: คุณต้องเรียกใช้ CacheSet ด้วยสิทธิ์ระดับผู้ดูแลระบบด้วยตนเอง ถ้าคุณทำไม่ได้คุณจะได้รับข้อผิดพลาด OutOfRange มันจะไม่ถามถึงสิทธิ์โดยอัตโนมัติ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.