緩存和索引介紹
在《IntelliJ IDEA 界面介紹》章節(jié)里已經(jīng)點(diǎn)到了 IntelliJ IDEA 首次加載項目的時候十气,都會創(chuàng)建索引氧腰,而創(chuàng)建索引的時間跟項目的文件多少成正比,我也簡單強(qiáng)調(diào)了 IntelliJ IDEA 索引的重要性婆赠。這里我們再對此進(jìn)行詳細(xì)說明索引泻肯、緩存對 IntelliJ IDEA 的重要性。
通過《常見文件類型的圖標(biāo)介紹》章節(jié)拧揽,你已經(jīng)認(rèn)識到 IntelliJ IDEA 下各個文件類型的圖標(biāo)是什么樣子的剃盾。其中有一個圖標(biāo)我是專門進(jìn)行了講解:Java class located out of the source root。我們也都知道該圖標(biāo)是表示 Java 類文件沒有在Source root目錄下的文件夾下會顯示此圖標(biāo)淤袜,但是其實(shí)還有一種情況也是會顯示此圖標(biāo)的痒谴。那就是:在 IntelliJ IDEA 創(chuàng)建索引過程中,所有的 Java類 都是這個圖標(biāo)铡羡,如果你項目大的話很容易觀察到的积蔚,幾個文件的小項目倒是不一定會看到。所以在 IntelliJ IDEA 創(chuàng)建索引過程即使你編輯了代碼也是編譯不了烦周、運(yùn)行不起來的尽爆,所以還是安安靜靜等 IntelliJ IDEA 創(chuàng)建索引完成。
IntelliJ IDEA 的緩存和索引主要是用來加快文件查詢读慎,從而加快各種查找教翩、代碼提示等操作的速度,所以 IntelliJ IDEA 的索引的重要性我再嘮叨一萬遍都不為過贪壳。但是饱亿,IntelliJ IDEA 的索引和緩存并不是一直會良好地支持 IntelliJ IDEA 的,這某些特殊條件下,IntelliJ IDEA 的緩存和索引文件也是會損壞的彪笼,比如斷電钻注、藍(lán)屏引起的強(qiáng)制關(guān)機(jī),當(dāng)你重新打開 IntelliJ IDEA配猫,基本上百分八十的可能 IntelliJ IDEA 都會報各種莫名其妙錯誤幅恋,甚至項目打不開,IntelliJ IDEA 主題還原成默認(rèn)狀態(tài)泵肄。也有一些即使沒有斷電捆交、藍(lán)屏,也會有莫名奇怪的問題的時候腐巢,也很有可能是 IntelliJ IDEA 緩存和索引出問題品追,這種情況還不少。遇到此類問題也不用過多擔(dān)心冯丙,下面就來講解如何解決肉瓦。
IntelliJ IDEA 已經(jīng)自帶提供清除緩存、索引的路口胃惜,如上圖標(biāo)注 1 所示泞莉。
一般建議點(diǎn)擊Invalidate and Restart,這樣會比較干凈船殉。
但是有一個需要提醒的是鲫趁,如上圖紅圈標(biāo)注的地方:清除索引和緩存會使得 IntelliJ IDEA 的Local History丟失,所以如果你項目沒有加入到版本控制利虫,而你又需要你項目文件的歷史更改記錄挨厚,那你最好備份下你的LocalHistory目錄。目錄地址在:C:\Users\當(dāng)前登錄的系統(tǒng)用戶名\.IntelliJIdea14\system\LocalHistory建議使用硬盤的全文搜索列吼,這樣效率更高幽崩。
通過上面方式清除緩存苦始、索引本質(zhì)也就是去刪除 C 盤下的system目錄下的對應(yīng)的文件而已寞钥,所以如果你不用上述方法也可以刪除整個system。當(dāng) IntelliJ IDEA 再次啟動項目的時候會重新創(chuàng)建新的system目錄以及對應(yīng)項目緩存和索引陌选。
如果你遇到了因?yàn)樗饕碇!⒕彺鎵牧艘灾劣陧椖看虿婚_,那也建議你可以直接刪除system目錄咨油,一般這樣都可以很好地解決你的問題您炉。
目前我電腦的 IntelliJ IDEA 是新裝的,也就打開了幾個小項目役电,所有打開的項目大小加起來不到 5M赚爵,但是他們創(chuàng)建的索引大家就已經(jīng)上百兆了,如上圖所示。所以如果你 C 盤空間不足的情況下冀膝,最好轉(zhuǎn)移下system目錄唁奢,方法可以根據(jù)《IntelliJ IDEA 相關(guān)核心文件和目錄介紹》講解的方法進(jìn)行。