歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 優化讓Firefox不再卡

優化讓Firefox不再卡

日期:2017/2/25 10:36:23   编辑:Linux教程
Firefox是Linux用戶首選的浏覽器,對其不作過多的介紹。只要看看LDCN的訪客留言就知道他的流行程度了。
Firefox雖然是一款優秀的浏覽器,但是不免還有些不足。對我而言,最大的不足就是其性能,簡單的說,剛開始用很流暢,用久了,會越用越卡。
今天琢磨了一下Firefox,分析下Firefox卡的原因,並通過設定相關參數解決了這個問題。從此上網變得更加暢快!
—–
我的Firefox用戶目錄(~/.mozilla/firefox)是從 Ubuntu 7.10時開始建立的,前前後後用過十幾個插件,經歷了從Firefox 2到Firefox 3,從 Ubuntu 7.10到 Ubuntu 8.04。
在Ubuntu 7.10的Firefox 2時,就遇到卡的問題,常常界面灰掉。
等到Ubuntu 8.04的Firefox 3,情況好一點,但是還是卡。後來我用極致編譯參數編譯了回Firefox 3.0,情況好了點,地址欄反應快了一點點,僅此而已。關閉Firefox的時候,還是會有很長的停頓時間,有時還卡死。
雖然重新建立用戶目錄會解決問題(即把~/.mozilla/firefox刪除掉),但是相當多的資料/插件要重來,這個代價受不了,所以還得從Firefox本身動手腳。
查閱了相關資料,終於發現是由“歷史訪問”和“位置”引起的。
這個可不是我們能看到的“歷史記錄”和“地址欄”的已訪問紀錄,而是數據層面的。
讓我們來看看,你的數據是不是過大了
查到數據庫的大小
來到~/.mozilla/firefox/***.default(因人而異),下面有一個places.sqlite文件,看看它的大小。如果超過了10MB,理論上就能引起Firefox卡了。像我是21MB,一般用了一年左右的話,會有這個程度。
這個文件裡存了些什麼呢?讓我用SQLite Manager這個擴展來看看:
在moz_favicons這張中,存了1500多個站點的Favicon,就是網站的Logo圖標

moz_historyvisits這張表中,保存著所有訪問過的紀錄,我這裡是六萬條!

而moz_places這裡存著近三萬多的places:地址,標題和反轉域名信息。
這些數據量到底對Firefox的性能有啥影響呢?我試著把places.sqlite改了個名,然後重啟Firefox。
所有的停頓和卡都不復存在了!Firefox變得非常流暢。
當然問題是所有的歷史紀錄和地址欄信息都沒有了,相當於起到了徹底“清除隱私紀錄”的作用,只是這個的程度比“工具”->“清除隱私紀錄”更深。
於是得出結論,在使用Firefox當中只要你要訪問網站,它就會頻繁的操作這個數據庫,因為數據庫很大,就影響了查詢效率,所以會卡。而在關閉Firefox時,要對數據庫作寫入保存的操作,因為文件大,所以停頓很久也就不奇怪了。
清理數據
查明了是這個文件裡面數據太多的原因,如果你對當前的歷史和紀錄沒什麼要求的話,直接刪除就行了。
或者也可以用“工具”->“清除隱私紀錄”,指定一些刪除選項,也會有不錯的效果,不過這並不能使文件變小,你需要用SQLite Manager,然後選擇好數據庫,並Database->Compact Database。這樣會壓縮數據庫,使文件減少。
如果你熟悉Sql數據操作,那就更好了。可以有所保留地清理數據庫。
在moz_places這張表中,有個字段(frencency)記錄著每個條目的“頻繁程度”,通過這個,你可以把一些不常使用的紀錄全都通過sql語句查詢並刪除掉。只留下一些常用的紀錄。
比如不常用的紀錄frencnecy值一般為0,兩三天才訪問一次的網站可能為140,而我每天上的Gmail是6000!
永久性優化
“OK,我也會手動清理歷史紀錄,讓我的Firefox快起來,問題是如何讓它不再慢下去呢?”
我們來更改一個Firefox的隱藏設定,讓它少記錄點條目,我們就可以不用定期去清理它了。
在地址欄輸入:about:config,過濾器中輸入history,注意圖中的以browser.history_expire_為前綴的條目:
browser.history_expire_days:表示歷史紀錄過期天數,默認是180天!
browser.history_expire_days.mirror:這個不詳,跟鏡像有關?
browser.history_expire_days_min:是用戶值,即在“Firefox首選項”、“隱私”、“歷史”當中,表示“保存我的歷史,至少X天”。即使你在首選項中把“至少X天”設置成了了1天,或取消,Firefox還是會保存浏覽歷史,因為系統保留值為180天。
browser.history_expire_sites:這個是最大保存的站點數量,默認是四萬個。
也就是說,系統要麼保存180天的紀錄,要麼保存四萬個浏覽紀錄,不過我上面的moz_historyvisits怎麼達到了六萬個呢?可能是指moz_places這張表。

差不多搞明白後,把值設置成下面的樣子,站點數保存四千個就夠了,系統保存3天的浏覽紀錄,用戶最少1天。那個mirror隨便設置了個值。

需要注意的是,如果你沒有手動清理過places.sqlite,僅僅設定了這些值的話,文件是不會有變化的。清理還是得手動來。
接下來,就用實踐來檢驗一切了,再過個半年查詢一下places.sqlite的紀錄,看看是否是被限制在了四千以內,這樣的話Firefox應該再也卡不起來了。
另外,建議把“首選項”,“ 安全 ”,把有關”嫌疑攻擊站點“和”偽造站點“的兩個選擇勾掉,有關這兩個東西的文件也會相當大。不過沒有places.sqlite誇張罷了。
Copyright © Linux教程網 All Rights Reserved