RAMDirectory是Directory抽象類在使用內存最為文件存儲的實現類,其主要是將所有的索引文件保存到內存中。這樣可以提高效率。但是如果索引文件過大的話,則會導致內存不足,因此,小型的系統推薦使用,如果大型的,索引文件達到G級別上,推薦使用FSDirectory
首先我們看看該類的源代碼:
首先該類繼承與抽象類Directory,并且實現了序列話接口
由于RAMDirectory是抽象類Directory根據內存來實現的,所以他不是永久性存在,一旦內存釋放,索引就會消失。不像FSDirectory有一個本地的文件來存儲索引。
我們看看RAMDirectory的構造函數,特別是根據本地的目錄來創建。將永久保存的文件初始化到內存中。因為內存的操作速度肯定比操作文件要快很倍。這樣索引的速度就大大的提供了。
將指定的dir目錄拷貝到當前的內存中,即實例化一個RAMDirectory。這里,closeDir是一個很重要的狀態變量,指定了拷貝完成后,源目錄dir是否關閉。如果實例化一個RAMDirectory完成后就關閉源目錄dir,可能會因為處理的時間非常短,而需要再次打開源目錄dir,持久化到文件系統目錄,開銷可能會比直接操作源目錄dir要大,這點要權衡。
Powered by: BlogJava Copyright © 天空蒼茫