阅读:8339回复:27
Firefox 4.0 中緩存機制的重大改進
Mozilla 官方看來是注意到「硬碟緩存」的重要性了
原本 Number of entries 的限制為 8192 從 4.0 開始,提升兩倍變成 16384 現在每小時版的 beta 12,似乎更加大了上限值 (應該是之前這個版本就開始) 以我自己的使用情況是目前數值為 43906 使用硬碟空間 660M 左右 (在選項裡面開啟緩存管理機制,上限1G) 不知道是不是已經變成無上限了 其他瀏覽器的快取機制如何不是很清楚 但在網路資料快取的改進上 Firefox 或許領先了一步 PS.沒有比從硬碟直接抓網頁資料來的更快的技術了 之前因數量上的限制,容易將「還可再利用」的網頁資料覆蓋過去 (圖片、js、txt) 所以整個網頁的讀取就要重新整個 running 一遍 (封包千里迢迢跑來跑去) 畢竟現在硬碟便宜,拿個 5G ~ 10G 做快取也不過份 PS .Cache 資料夾的結構也有變化,原本是把資料壓縮後直接放進去不分類 現在貌似變成跟 Squid Cache 一樣,建立一堆資料夾下去分再放進去 不知道這是不是比較有效率方式? |
|
|
1楼#
发布于:2011-02-04 12:35
Cache文件夹使用折叠法确实是个不错的主意。
|
|
|
2楼#
发布于:2011-02-04 12:35
装好firefox的第一件事情,选项——高级——网络——脱机储存——勾上无视自动缓存管理,默认是1G
|
|
3楼#
发布于:2011-02-04 12:35
|
|
|
4楼#
发布于:2011-02-04 12:35
browser.cache.disk.capacity ?
|
|
5楼#
发布于:2011-02-04 12:35
我记得b5的时候这个选项是默认勾上的,而且默认是250M,不知道从哪个版本开始,这个选项默认就不勾上了。
某天用b5的时候感觉速度好像比b10要快,经过比较原来b5这个选项是默认勾上的,而b10没有。后来把b10也勾上了,感觉浏览速度快了很多,不知道是不是心理作用。 |
|
6楼#
发布于:2011-02-04 12:35
那个选项到底要不要钩上呢?“无视自动内存管理”
|
|
|
7楼#
发布于:2011-02-04 12:35
勾上之後貌似緩存的資料保存數量就沒有上限,長遠來看是有幫助的,原因在一樓。
|
|
|
8楼#
发布于:2011-02-04 12:35
在哪 设置?找不到“无视自动缓存管理”选项。
|
|
9楼#
发布于:2011-02-04 12:35
我记得关于这个讨论过不少次,我自己也试过:Firefox似乎比较倾向于只要有网络连接,就去服务器下载一份新的内容,而不使用本地缓存。
另一方面,除非你看的网页是基本上不更新的网页,否则还是得要浏览器去下载更新了的内容。那么我举这样一个例子:有一张网页上的某一部分内容有更新(比方说改了一个字),其余大部分(例如很占带宽的图片)则没有。那么你下次访问这个网站的时候,浏览器是如何判断的?是只下载更新过的文字,还是连图片也重新下载一次?如果是前者的话,缓存大的确是有好处的(如果用户的网速还比较慢就更好)。 -------------- 我对楼主说的"用5~10g"来做缓存持惊讶态度,我不知道这样会有什么特别的好处。缓存的内容是跟网站挂钩的,如果在a站点和b站点有一张一模一样的图片,我推测Firefox应该还是保存两份缓存文件(何况Firefox用的还不是真实的文件名),并且肯定要在哪里记录下"这张是A站的,这张是B站的",时间长了,这些信息就会越来越多,下次再打开某个网站时,Firefox就要在10多g的空间中匹配以确定"这张图片是不是缓存过了?"这难道会不拖慢速度? |
|
|
10楼#
发布于:2011-02-04 12:35
待過 Yahoo 跟 Google 的工程師也認為用 5 ~ 10G 保存緩存不過分
http://www.stevesouders.com/blog/2010/0 ... r-caching/ 另外我認為應該是匹配 URL 地址,這樣才科學,針對不同的網站相同的圖片 直接從硬碟讀取無疑是最有效率的做法,緩存的搜尋速度應該比想像中的還要快 以老牌的快取服務企 Squid Cache 為例 通常在 0.01 秒的範圍左右即可命中並返回目標物件給瀏覽器 (緩存 10G 以上) 相信 Firefox 這方面的技術應該不會差 Squid 太多 (結構也越來越像了) 我去年開始使用 Squid Cache 後,目前 Squid 的命中率約 33% ~ 35% 左右 (僅一個人使用)加上 Firefox 本身的快取,應該超過 50% 這證明了使用快取對瀏覽網頁是非常高效的手段之一 也就是有二分之一以上的東西都是直接從硬盤上抓回來的 上面 Google 工程師的文章也提到目前瀏覽器對緩存的使用率遠遠低於平均值 也就是緩存的「再利用率」不夠,如果能提高網民對緩存的使用率,相信對 整個網路會有正面的幫助,最直接的就是減少不必要的流量封包 |
|
|
11楼#
发布于:2011-02-04 12:35
|
|
12楼#
发布于:2011-02-04 12:35
估計是B11才有的。
|
|
|
13楼#
发布于:2011-02-04 12:35
个人用户, 使用 5G 缓存毫无必要.
HTTP 本身提供了 Expires, ETags, Last-Modified, Cache-Control 作缓存的相关控制. 视频这类大型文件只会使用一遍的通常都会有 Cache-Control: no-cache, 因为缓存它的性价比太低. 缓存的通常是图片, 脚本, 样式表等这些小的静态文件. 如果这些文件达到了5G, 那么我可以肯定其中99%的实体都是过期的, 缓存一个过期的项目毫无意义. 缓存查找使用哈希, 代价几乎为零的, 这个不需要担心. 需要担心的是缓存的命中比例, 如果1G的缓存只被命中了100K, 很明显还不如不去缓存. 比较好的解决方案是使用两代缓存, 第一代捕获, 第二代存储, 使用锁相的算法控制容量和命中的平衡. 但是这类算法通常只使用在比较苛刻的限制环境下的, 比如java代码运行时编译. |
|
14楼#
发布于:2011-02-04 12:35
arch7819:个人用户, 使用 5G 缓存毫无必要. 所以我才架了個 Squd 緩存伺服器,這個伺服器可以控制各類物件緩存的時間 原則上是讓圖片、腳本類保存較長的時間 讓 txt、php、html 等需及時更新的頁面保存較短時間或者直接使用頁面默認的時間 上面也提到了,我一個人用,Squid 有 30% 左右的命中率,加上 Firefox 本身的快取 加總起來應有 50% 以上,也就代表平均一半的資料是直接從硬盤上抓取的 以一個人,短時間內的上網體驗來看,5G 的確是很多,但長期下來 以 80/20 法則的觀點來看,現階段的瀏覽器緩存的機制並沒有做到最高效的緩存處理,除了空間的限制以外 另外一個就是緩存的算法,也就是什麼東西該緩存什麼不該 又該緩存多久時間等等,而這方面,Firefox 4.0 貌似進步不少。 |
|
|
上一页
下一页