jnlyu
狐狸大王
狐狸大王
  • UID10304
  • 注册日期2005-12-04
  • 最后登录2015-06-17
  • 发帖数304
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
阅读:8249回复:27

Firefox 4.0 中緩存機制的重大改進

楼主#
更多 发布于:2011-02-04 12:35
Mozilla 官方看來是注意到「硬碟緩存」的重要性了

原本 Number of entries 的限制為 8192
從 4.0 開始,提升兩倍變成 16384

現在每小時版的 beta 12,似乎更加大了上限值 (應該是之前這個版本就開始)
以我自己的使用情況是目前數值為 43906
使用硬碟空間 660M 左右 (在選項裡面開啟緩存管理機制,上限1G)
不知道是不是已經變成無上限了

其他瀏覽器的快取機制如何不是很清楚
但在網路資料快取的改進上 Firefox 或許領先了一步

PS.沒有比從硬碟直接抓網頁資料來的更快的技術了
   之前因數量上的限制,容易將「還可再利用」的網頁資料覆蓋過去 (圖片、js、txt)
   所以整個網頁的讀取就要重新整個 running 一遍 (封包千里迢迢跑來跑去)
   畢竟現在硬碟便宜,拿個 5G ~ 10G 做快取也不過份

PS .Cache 資料夾的結構也有變化,原本是把資料壓縮後直接放進去不分類
   現在貌似變成跟 Squid Cache 一樣,建立一堆資料夾下去分再放進去
   不知道這是不是比較有效率方式?
AppNavi手机应用官方微博 介绍最新的密室逃脱游戏!
http://weibo.com/appnavi
bingyuan
火狐狸
火狐狸
  • UID35064
  • 注册日期2011-01-12
  • 最后登录2015-03-14
  • 发帖数128
  • 经验28枚
  • 威望0点
  • 贡献值4点
  • 好评度0点
  • 社区居民
  • 忠实会员
1楼#
发布于:2011-02-04 12:35
dindog:这又是CPU那小的可怜的L1 L2上学来的固定句式吧。。。。

比起先进网速和硬盘速度,这个规模的缓存效率怎样都不会比网络慢。
回到原帖


别以为别人只会拾人牙慧,一幅自己什么都懂的样子!

缓存大了,查找起来也消耗时间。
最常访问的内容放进缓存才能感受到效率提升,按照你的说法是无论什么东西全放进缓存里就好了?
slimx
火狐狸
火狐狸
  • UID21790
  • 注册日期2007-11-09
  • 最后登录2013-08-05
  • 发帖数119
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
2楼#
发布于:2011-02-04 12:35
之前之所以限制到8192,就是因为效率比较差,越大越差的缘故.
我的感觉,现在也没见改善.缓存比较大的时候,会出现影响速度(页面,也包括程序本身)的情形.当然也可能是我的配置问题,现在限制到了一个比较小的值.
dindog
千年狐狸
千年狐狸
  • UID30818
  • 注册日期2009-10-24
  • 最后登录2023-02-03
  • 发帖数1195
  • 经验59枚
  • 威望0点
  • 贡献值26点
  • 好评度10点
3楼#
发布于:2011-02-04 12:35
bingyuan:缓存不是越大越好,命中率最重要回到原帖

这又是CPU那小的可怜的L1 L2上学来的固定句式吧。。。。

比起先进网速和硬盘速度,这个规模的缓存效率怎样都不会比网络慢。
以前firefox跳个票的时间现在可以发布几个正式版了-_-
bingyuan
火狐狸
火狐狸
  • UID35064
  • 注册日期2011-01-12
  • 最后登录2015-03-14
  • 发帖数128
  • 经验28枚
  • 威望0点
  • 贡献值4点
  • 好评度0点
  • 社区居民
  • 忠实会员
4楼#
发布于:2011-02-04 12:35
缓存不是越大越好,命中率最重要
asdf123456
千年狐狸
千年狐狸
  • UID32588
  • 注册日期2010-04-16
  • 最后登录2020-02-17
  • 发帖数1088
  • 经验299枚
  • 威望0点
  • 贡献值50点
  • 好评度10点
  • 社区居民
  • 忠实会员
5楼#
发布于:2011-02-04 12:35
只想问下楼主,Firefox有没有自动清理那些低使用率的缓存这功能?
kmc
kmc
管理员
管理员
  • UID165
  • 注册日期2004-11-25
  • 最后登录2022-09-22
  • 发帖数9186
  • 经验397枚
  • 威望1点
  • 贡献值124点
  • 好评度41点
  • 忠实会员
  • 终身成就
  • 社区居民
6楼#
发布于:2011-02-04 12:35
椎名真冬

就是去年报道的请勿跟踪功能
回到原帖


    * 告诉网站我不想被追踪:选中之后等于告诉网站你不想你的信息被广告提供者或第三方提供者追踪。不过,是否认可你的这个请求是由具体网站决定的,他们并不一定会满足你的愿望。

http://support.mozilla.com/zh-CN/kb/%E9 ... 2%E6%9D%BF
Waterfox Current和Firefox Nightly都用,逐渐走出XUL扩展依赖
jnlyu
狐狸大王
狐狸大王
  • UID10304
  • 注册日期2005-12-04
  • 最后登录2015-06-17
  • 发帖数304
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
7楼#
发布于:2011-02-04 12:35
以目前的設計來看,Number of entries 最大值貌似為 2097152
全部用滿大約是 30G 以上,不過在選項裡面的最大值限制在 1024M
所以實際上只能使用 50000 條左右的 entry
而 about:config 裡面可以修改 1024M 的上限值,但改了有沒有效果還有待進一步確認
AppNavi手机应用官方微博 介绍最新的密室逃脱游戏!
http://weibo.com/appnavi
椎名真冬
火狐狸
火狐狸
  • UID31413
  • 注册日期2009-12-17
  • 最后登录2022-11-02
  • 发帖数103
  • 经验32枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
8楼#
发布于:2011-02-04 12:35
jnlyu:剛剛發現增加了這個選項
Tell web site I do not want to be tracked
有人知道做什麼用的嗎?
回到原帖


就是去年报道的请勿跟踪功能
jnlyu
狐狸大王
狐狸大王
  • UID10304
  • 注册日期2005-12-04
  • 最后登录2015-06-17
  • 发帖数304
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
9楼#
发布于:2011-02-04 12:35
剛剛發現增加了這個選項
Tell web site I do not want to be tracked
有人知道做什麼用的嗎?
AppNavi手机应用官方微博 介绍最新的密室逃脱游戏!
http://weibo.com/appnavi
椎名真冬
火狐狸
火狐狸
  • UID31413
  • 注册日期2009-12-17
  • 最后登录2022-11-02
  • 发帖数103
  • 经验32枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
10楼#
发布于:2011-02-04 12:35
royallin
2不就是不用缓存了吗?
那内存缓存缓存就没有作用了。
我也只用内存缓存。硬盘安静了
回到原帖


2不是不用缓存

而是如果你之前上过刚网址就不检查了直接调用缓存文件
jnlyu
狐狸大王
狐狸大王
  • UID10304
  • 注册日期2005-12-04
  • 最后登录2015-06-17
  • 发帖数304
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
11楼#
发布于:2011-02-04 12:35
只用內存緩存貌似效率是最差的
AppNavi手机应用官方微博 介绍最新的密室逃脱游戏!
http://weibo.com/appnavi
royallin
非常火狐
非常火狐
  • UID29014
  • 注册日期2009-05-31
  • 最后登录2016-12-07
  • 发帖数668
  • 经验46枚
  • 威望0点
  • 贡献值32点
  • 好评度0点
  • 社区居民
12楼#
发布于:2011-02-04 12:35
椎名真冬:现在本人就只有一个内存缓存

browser.cache.check_doc_frequency设置成了2
回到原帖

2不就是不用缓存了吗?
那内存缓存缓存就没有作用了。
我也只用内存缓存。硬盘安静了
椎名真冬
火狐狸
火狐狸
  • UID31413
  • 注册日期2009-12-17
  • 最后登录2022-11-02
  • 发帖数103
  • 经验32枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
13楼#
发布于:2011-02-04 12:35
现在本人就只有一个内存缓存

browser.cache.check_doc_frequency设置成了2
jnlyu
狐狸大王
狐狸大王
  • UID10304
  • 注册日期2005-12-04
  • 最后登录2015-06-17
  • 发帖数304
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
14楼#
发布于:2011-02-04 12:35
arch7819:个人用户, 使用 5G 缓存毫无必要.

HTTP 本身提供了 Expires, ETags, Last-Modified, Cache-Control 作缓存的相关控制.
视频这类大型文件只会使用一遍的通常都会有 Cache-Control: no-cache, 因为缓存它的性价比太低.

缓存的通常是图片, 脚本, 样式表等这些小的静态文件.
如果这些文件达到了5G, 那么我可以肯定其中99%的实体都是过期的,
缓存一个过期的项目毫无意义.

缓存查找使用哈希, 代价几乎为零的, 这个不需要担心. 需要担心的是缓存的命中比例, 如果1G的缓存只被命中了100K, 很明显还不如不去缓存.
 
比较好的解决方案是使用两代缓存, 第一代捕获, 第二代存储, 使用锁相的算法控制容量和命中的平衡.
但是这类算法通常只使用在比较苛刻的限制环境下的, 比如java代码运行时编译.
回到原帖


所以我才架了個 Squd 緩存伺服器,這個伺服器可以控制各類物件緩存的時間
原則上是讓圖片、腳本類保存較長的時間
讓 txt、php、html 等需及時更新的頁面保存較短時間或者直接使用頁面默認的時間

上面也提到了,我一個人用,Squid 有 30% 左右的命中率,加上 Firefox 本身的快取
加總起來應有 50% 以上,也就代表平均一半的資料是直接從硬盤上抓取的

以一個人,短時間內的上網體驗來看,5G 的確是很多,但長期下來
以 80/20 法則的觀點來看,現階段的瀏覽器緩存的機制並沒有做到最高效的緩存處理,除了空間的限制以外
另外一個就是緩存的算法,也就是什麼東西該緩存什麼不該
又該緩存多久時間等等,而這方面,Firefox 4.0 貌似進步不少。
AppNavi手机应用官方微博 介绍最新的密室逃脱游戏!
http://weibo.com/appnavi
上一页
游客

返回顶部