阅读:4185回复:14
Mozilla 正在重写书签备份系统,这将有助于对整个 Places 的改进
原来的书签系统存在各种问题,严重影响 Firefox 的性能,比如:
1、书签备份是同步运行,并且位于主线程之内,I/O量很大。 2、备份的书签体积较大,还有优化空间,且每天备份一次书签不够智能,重复且冗余 3、备份时是使用实时更新的 Places 结果,而非读取一个静态的快照,关闭时备份会导致关闭浏览器变慢 4、代码陈旧丑陋 针对第一点,Mozilla 正在改写代码和 API,最关键是转化为异步运行,并且脱离主线程(off the main thread) 针对第二点,现在备份的书签项会显示书签的大小,和多少个书签了。在书签管理器--导入和备份---还原。 以前是每天备份一份,一共显示 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 |
|
最新喜欢:lord
|
1楼#
发布于:2014-06-10 19:52
omtc指异步图层合成,此外还有omta,apz等,不是泛指异步操作
|
|
3楼#
发布于:2014-06-10 19:58
teredarguiterep:omtc指异步图层合成,此外还有omta,apz等,不是泛指异步操作回到原帖这个我知道,异步操作是 asynchronous,我是说备份会异步运行,并且备份也是会 off main thread 来备份。 |
|
|
4楼#
发布于:2014-06-10 20:00
|
|
5楼#
发布于:2014-06-10 20:02
的确 刚刚发现这个变化 我的书签都253kb了
|
|
6楼#
发布于:2014-06-10 20:05
teredarguiterep:omtc=off main thread + c, 你链接贴的不对。回到原帖不好意思,已修改。论坛讨论只看到这个。 |
|
|
7楼#
发布于:2014-06-10 20:10
|
|
|
8楼#
发布于:2014-06-10 20:12
哦等等
places本身还是sqlite数据库? 只是备份部分改了异步+lz4? |
|
|
9楼#
发布于:2014-06-10 20:24
|
|
|
10楼#
发布于:2014-06-10 20:42
坐等sqlite4横空出世……
|
|
|
11楼#
发布于:2014-06-10 21:59
“从5月26日以后,备份的书签后缀名变成了 jsonlz4”?
偶到配置文件夹的 bookmarkbackups文件夹下面查看默认显示有10个——6月1日到6月10日自动显示出来的都还是. json , 没见.jsonlz4 用的Firefox 24.5.0esr版的。 |
|
12楼#
发布于:2014-06-10 22:27
|
|
|
13楼#
发布于:2014-06-11 11:08
|
|
|
14楼#
发布于:2014-06-11 19:51
ESR没关系总是要“落后”好几拍,面包会有的面条也会有的。
|
|