fang5566
管理员
管理员
  • UID3719
  • 注册日期2005-03-07
  • 最后登录2024-05-09
  • 发帖数18483
  • 经验4837枚
  • 威望5点
  • 贡献值4316点
  • 好评度1116点
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 终身成就
阅读:4185回复:14

Mozilla 正在重写书签备份系统,这将有助于对整个 Places 的改进

楼主#
更多 发布于:2014-06-10 19:47
原来的书签系统存在各种问题,严重影响 Firefox 的性能,比如:
1、书签备份是同步运行,并且位于主线程之内,I/O量很大。
2、备份的书签体积较大,还有优化空间,且每天备份一次书签不够智能,重复且冗余
3、备份时是使用实时更新的 Places 结果,而非读取一个静态的快照,关闭时备份会导致关闭浏览器变慢
4、代码陈旧丑陋

针对第一点,Mozilla 正在改写代码和 API,最关键是转化为异步运行,并且脱离主线程(off the main thread)参见https://www.firefox.net.cn/read-48065
针对第二点,现在备份的书签项会显示书签的大小,和多少个书签了。在书签管理器--导入和备份---还原。


以前是每天备份一份,一共显示 10 个,现在显示 15 个(可在 about:config 中设置 browser.bookmarks.max_backups),大家进去看以后就发现不是每天都备份,有时候会间隔几天才备份一次,Firefox 会判断这几天是否有书签发生变化,发生的变化是否足以让系统自己备份一份,减少了重复备份。
备份和还原的判断也更智能,现在对每个备份文件都添加 MD5 Hash,还原书签时会校验这个 MD5,用于判断备份文件是否是重复的或是同一个,减少了 I/O 量。

在减少体积方面,大家进到配置文件夹的 bookmarkbackup 文件夹下面一看就知道了,从5月26日以后,备份的书签后缀名变成了 jsonlz4,这是自动备份时对书签进行压缩,手动备份则还是 json 格式不压缩,我这里明显备份文件小了很多:

Bug 818587 - Compress bookmark backups

对 lz4 压缩有兴趣的朋友,可以自己网络上找找具体介绍。

针对第三点,在改写为异步运行后,会继续改写更内部的代码,异步查询并读取整个书签树快照,性能有很大提升,也是脱离主线程。另外删除关闭时备份的代码,
改为浏览器空闲时进行备份。


以上的改写代码都让代码焕然一新且更美观。

来源:http://blog.bonardo.net/2014/05/28/bookmarks-backups-redesign

最新喜欢:

lordlord
Firefox More than meets your experience
teredarguiterep
千年狐狸
千年狐狸
  • UID39204
  • 注册日期2012-12-20
  • 最后登录2018-06-10
  • 发帖数1028
  • 经验615枚
  • 威望4点
  • 贡献值288点
  • 好评度105点
  • 社区居民
  • 忠实会员
1楼#
发布于:2014-06-10 19:52
omtc指异步图层合成,此外还有omta,apz等,不是泛指异步操作
rasis
  • UID3105
  • 注册日期
  • 最后登录
  • 发帖数
  • 经验
  • 威望
  • 贡献值
  • 好评度
2楼#
发布于:2014-06-10 19:54
我说变化很大。。。
fang5566
管理员
管理员
  • UID3719
  • 注册日期2005-03-07
  • 最后登录2024-05-09
  • 发帖数18483
  • 经验4837枚
  • 威望5点
  • 贡献值4316点
  • 好评度1116点
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 终身成就
3楼#
发布于:2014-06-10 19:58
teredarguiterep:omtc指异步图层合成,此外还有omta,apz等,不是泛指异步操作回到原帖
这个我知道,异步操作是 asynchronous,我是说备份会异步运行,并且备份也是会 off main thread 来备份。
Firefox More than meets your experience
teredarguiterep
千年狐狸
千年狐狸
  • UID39204
  • 注册日期2012-12-20
  • 最后登录2018-06-10
  • 发帖数1028
  • 经验615枚
  • 威望4点
  • 贡献值288点
  • 好评度105点
  • 社区居民
  • 忠实会员
4楼#
发布于:2014-06-10 20:00
fang5566:这个我知道,异步操作是 asynchronous,我是说备份会异步运行,并且备份也是会 off main thread 来备份。回到原帖
omtc=off main thread + c, 你链接贴的不对。
文科
千年狐狸
千年狐狸
  • UID39959
  • 注册日期2013-10-17
  • 最后登录2019-07-27
  • 发帖数2069
  • 经验1328枚
  • 威望4点
  • 贡献值340点
  • 好评度256点
  • 最爱沙发
  • 社区居民
  • 忠实会员
5楼#
发布于:2014-06-10 20:02
的确 刚刚发现这个变化  我的书签都253kb了
fang5566
管理员
管理员
  • UID3719
  • 注册日期2005-03-07
  • 最后登录2024-05-09
  • 发帖数18483
  • 经验4837枚
  • 威望5点
  • 贡献值4316点
  • 好评度1116点
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 终身成就
6楼#
发布于:2014-06-10 20:05
teredarguiterep:omtc=off main thread + c, 你链接贴的不对。回到原帖
不好意思,已修改。论坛讨论只看到这个。
Firefox More than meets your experience
aaaa007cn
千年狐狸
千年狐狸
  • UID23968
  • 注册日期2008-05-03
  • 最后登录2022-03-07
  • 发帖数1924
  • 经验1138枚
  • 威望1点
  • 贡献值232点
  • 好评度164点
7楼#
发布于:2014-06-10 20:10
aaaa007cn
千年狐狸
千年狐狸
  • UID23968
  • 注册日期2008-05-03
  • 最后登录2022-03-07
  • 发帖数1924
  • 经验1138枚
  • 威望1点
  • 贡献值232点
  • 好评度164点
8楼#
发布于:2014-06-10 20:12
哦等等
places本身还是sqlite数据库?
只是备份部分改了异步+lz4?
fang5566
管理员
管理员
  • UID3719
  • 注册日期2005-03-07
  • 最后登录2024-05-09
  • 发帖数18483
  • 经验4837枚
  • 威望5点
  • 贡献值4316点
  • 好评度1116点
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 终身成就
9楼#
发布于:2014-06-10 20:24
aaaa007cn:哦等等
places本身还是sqlite数据库?
只是备份部分改了异步+lz4?
回到原帖
目前来看是这样,places 本身还是 sqlite,Firefox 还没到完全抛弃 sqlite 的地步
我把标题的改造两个字换成改进,会比较恰当一些。
Firefox More than meets your experience
aaaa007cn
千年狐狸
千年狐狸
  • UID23968
  • 注册日期2008-05-03
  • 最后登录2022-03-07
  • 发帖数1924
  • 经验1138枚
  • 威望1点
  • 贡献值232点
  • 好评度164点
10楼#
发布于:2014-06-10 20:42
坐等sqlite4横空出世……
qweszxc
千年狐狸
千年狐狸
  • UID39616
  • 注册日期2013-06-24
  • 最后登录2022-10-14
  • 发帖数1021
  • 经验929枚
  • 威望0点
  • 贡献值1012点
  • 好评度68点
  • 社区居民
  • 忠实会员
11楼#
发布于:2014-06-10 21:59
“从5月26日以后,备份的书签后缀名变成了 jsonlz4”?
偶到配置文件夹的 bookmarkbackups文件夹下面查看默认显示有10个——6月1日到6月10日自动显示出来的都还是. json   ,
没见.jsonlz4    用的Firefox 24.5.0esr版的。
fang5566
管理员
管理员
  • UID3719
  • 注册日期2005-03-07
  • 最后登录2024-05-09
  • 发帖数18483
  • 经验4837枚
  • 威望5点
  • 贡献值4316点
  • 好评度1116点
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 终身成就
12楼#
发布于:2014-06-10 22:27
qweszxc:“从5月26日以后,备份的书签后缀名变成了 jsonlz4”?
偶到配置文件夹的 bookmarkbackups文件夹下面查看默认显示有10个——6月1日到6月10日自动显示出来的都还是. json   ,
没见.jsonlz4    ...
回到原帖
汗。这当然是nightly了,由于不是都完成我也没在标题上加前缀,但无论如何也不应该是24.0.5esr这个老版本吧?
Firefox More than meets your experience
pcxfirefox
千年狐狸
千年狐狸
  • UID39042
  • 注册日期2012-06-22
  • 最后登录2018-01-15
  • 发帖数2539
  • 经验1263枚
  • 威望2点
  • 贡献值242点
  • 好评度133点
  • 最爱沙发
  • 忠实会员
  • 社区居民
13楼#
发布于:2014-06-11 11:08
qweszxc:“从5月26日以后,备份的书签后缀名变成了 jsonlz4”?
偶到配置文件夹的 bookmarkbackups文件夹下面查看默认显示有10个——6月1日到6月10日自动显示出来的都还是. json   ,
没见.jsonlz4    ...
回到原帖
ESR不可能加入新功能
http://pcxfirefox.wordpress.com/
qweszxc
千年狐狸
千年狐狸
  • UID39616
  • 注册日期2013-06-24
  • 最后登录2022-10-14
  • 发帖数1021
  • 经验929枚
  • 威望0点
  • 贡献值1012点
  • 好评度68点
  • 社区居民
  • 忠实会员
14楼#
发布于:2014-06-11 19:51
ESR没关系总是要“落后”好几拍,面包会有的面条也会有的。
游客

返回顶部