Trong Windows 7 (64 bit), tôi đang đọc qua 9000 tệp có kích thước vừa phải. Tổng cộng, có hơn 200 MB dữ liệu. Sử dụng Java (JDK 1.6.21) Tôi đang lặp lại các tệp. 1400 đầu tiên hoặc lâu hơn đi ở tốc độ tối đa nhưng sau đó tốc độ giảm xuống còn 4ms mỗi tệp. Nó chỉ ra rằng chi phí chính phát sinh chỉ đơn giản bằng cách mở các tập tin.
Tôi đang mở các tệp bằng cách sử dụng new FileInputStream
(và tất nhiên là đóng chúng kịp thời để tránh rò rỉ tệp). Sau một số điều tra, tôi thấy rằng bộ đệm đĩa của Windows chỉ sử dụng 100 MB RAM hoặc hơn mặc dù tôi có sẵn 8 GiB. Tôi đã thử tăng kích thước bộ đệm bằng công cụ CacheSet nhưng mọi giá trị tôi cung cấp đều bị coi là nằm ngoài phạm vi .
Tôi cũng đã thử bật LargeSystemCache
khóa đăng ký nhưng (sau khi khởi động lại), CacheSet
công cụ vẫn cho biết tôi đang sử dụng 100 MB bộ nhớ cache (và không tăng trong quá trình chạy thử). Có ai có bất kỳ đề xuất nào để "khuyến khích" Windows 7 lưu trữ các tệp 9000 của tôi không?