LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: shpchp

Firefox 优化探索

[复制链接]
发表于 2008-1-12 15:01:25 | 显示全部楼层
pango影响还不是很大,cairo是罪魁祸首。官方版本比disro版本要快很多。
回复 支持 反对

使用道具 举报

发表于 2008-1-13 14:05:58 | 显示全部楼层
Post by cobranail;1806128
pango影响还不是很大,cairo是罪魁祸首。官方版本比disro版本要快很多。


是的,使用官方版本速度快了很多。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-26 15:26:35 | 显示全部楼层
最近一直在研究 firefox 的内存泄漏和解决方案...

发现这个工具检测内存泄漏非常有效:
http://dbaron.org/mozilla/leak-monitor/

发现有许多插件会导致内存泄漏, 例如 firebug 就会导致内存泄漏。

另外有许多网站也会导致内存泄漏, 例如凡是使用了 mootool 和 jquery 的网站一般都会导致内存泄漏。这不是网站的问题,而是 firefox 的问题。If you see alerts when leaving Web pages, there's definitely a bug in Mozilla that should be filed; however, to avoid filing duplicates, it's probably best to test in a build that has all of these bugs fixed.

其实就连本论坛也会导致内存泄漏:
Leaks in window 0xed3efc0:
[+] [leaked object] (1c4769f0, http://www.linuxsir.cn/bbs/clientscript/vbulletin_menu.js?v=368, 106-113) = [Function]
[ ] prototype (ee942b0) = [Object]

据说 firefox 3 解决了许多内存泄漏的问题... 但我在 CentOS5 上编译的 firefox 3 就老是崩溃。现在重新回到了 CentOS5 自带的 firefox 1.5 ...

除了硬对硬研究 Firefox 代码外, 不知道有没有其他跟踪和 fix 内存泄漏代码的好方法? 我没搜到相关文章...
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-26 18:09:16 | 显示全部楼层
Post by marklf;1806486
是的,使用官方版本速度快了很多。


我个人还是不建议在 Fedora 下用 Mozilla 官方的版本,因为 Fedora 提供的版本比 Mozilla 官方的相同版本更稳定。Fedora 的版本打了不少补丁,修补了不少 bug... 例如这是 F7 的 firefox 打的补丁:

# build patches
Patch1:         firefox-2.0-link-layout.patch
Patch3:         firefox-1.1-nss-system-nspr.patch
Patch4:         firefox-1.5-with-system-nss.patch
Patch5:         firefox-2.0-visibility.patch

# customization patches
Patch20:        firefox-redhat-homepage.patch
Patch21:        firefox-0.7.3-psfonts.patch
Patch22:        firefox-1.1-default-applications.patch
Patch23:        firefox-1.1-software-update.patch
Patch24:        firefox-RC1-stock-icons-be.patch
Patch25:        firefox-RC1-stock-icons-fe.patch
Patch26:        firefox-RC1-stock-icons-gnomestripe.patch
Patch27:        firefox-gnomestripe-0.1-livemarks.patch

# local bugfixes
Patch40:        firefox-1.5-bullet-bill.patch
Patch41:        firefox-2.0.0.4-undo-uriloader.patch
Patch42:        firefox-1.1-uriloader.patch

# font system fixes
Patch81:        firefox-1.5-nopangoxft.patch
Patch82:        firefox-1.5-pango-mathml.patch
Patch83:        firefox-1.5-pango-cursor-position.patch
Patch84:        firefox-2.0-pango-printing.patch
Patch85:        firefox-2.0-pango-ligatures.patch
Patch86:        firefox-1.5-pango-cursor-position-more.patch
Patch87:        firefox-1.5-pango-justified-range.patch
Patch88:        firefox-1.5-pango-underline.patch
Patch89:        firefox-1.5-xft-rangewidth.patch

# Other
Patch102:       firefox-1.5-theme-change.patch
Patch104:       firefox-1.5-ppc64.patch

Patch112:        firefox-2.0-enable-debug.patch

除了 Patch112 是我自己打的外,其余都是 Fedora 打的补丁。修补了不少 bug 吧,哈哈。所以还是建议用 Fedora 提供的版本

当然,Mozilla 官方的最新般同样也修补了更多的bug, 但最新版在 Fedora 下运行往往会有一些问题。例如 Firefox3 目前就没法在我这里正常运行。

另外,报告一下我这里对内存泄漏的最近测试结果。。。虽然 Firefox2 也存在一定的内存泄漏问题,但发现 Firefox2 与 Firefox1.5 相比,确实是天上地下的差别,Firefox2 的内存溢出问题起码比 Firfox1.5 少了 10 倍。例如访问本论坛会导致 firefox1.5 内存溢出,但不会导致 firefox2 内存泄漏 但 Firebug 这个插件会同样导致 Firefox 1.5 和 Firefox2 内存泄漏 ...

CentOS5 目前自带的 Firefox 是 1.5 版, 所以还是建议都升级到 2.0, 活活。
回复 支持 反对

使用道具 举报

发表于 2008-1-26 18:24:03 | 显示全部楼层
今天发现我原来系统默认的Firefox有的mplayer的播放plugin不能工作了,但flash还可以。

Ok,那换回来吧!哈哈
回复 支持 反对

使用道具 举报

发表于 2008-1-26 19:40:42 | 显示全部楼层
用opera9.5吧,感觉比firefox好用。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-27 00:18:04 | 显示全部楼层
刚在 CentOS5 下成功安装了F7 的 Firefox2:
Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.8.1.10) Gecko/20080126 Fedora/2.0.0.10-2 Firefox/2.0.0.10

一般的办法是在 CentOS5 里直接安装 Mozilla 官方下载的 Firefox binary 包, 但我更喜欢被 Fedora 打过补丁的 Firefox ...
首先下载 F7 的 firefox-2.0.0.10-2.fc7.src.rpm, 但是按照普通安装 src.rpm 的方法安装这个源码包会出现问题, 以下是解决办法:

1. 去掉对 system-bookmarks 的依赖, CentOS中没有这个包。方法是编辑 firefox.spec, 我做了一个 patch:
  1. $ diff -aur firefox.spec.old firefox.spec
  2. --- firefox.spec.old    2008-01-26 22:05:04.000000000 +0800
  3. +++ firefox.spec        2008-01-26 22:05:40.000000000 +0800
  4. @@ -1,5 +1,4 @@
  5. %define indexhtml file:///usr/share/doc/HTML/index.html
  6. -%define default_bookmarks_file %{_datadir}/bookmarks/default-bookmarks.html
  7. %define desktop_file_utils_version 0.9
  8. %define nspr_version 4.6
  9. %define nss_version 3.11.1
  10. @@ -103,12 +102,10 @@
  11. BuildRequires:  freetype-devel >= 2.1.9
  12. BuildRequires:  libXt-devel
  13. BuildRequires:  libXrender-devel
  14. -BuildRequires:  system-bookmarks
  15. Requires:       nspr >= %{nspr_version}
  16. Requires:       nss >= %{nss_version}
  17. Requires:       desktop-file-utils >= %{desktop_file_utils_version}
  18. -Requires:       system-bookmarks
  19. Obsoletes:      phoenix, mozilla-firebird, MozillaFirebird
  20. Obsoletes:      mozilla <= 37:1.7.13
  21. Provides:       webclient
  22. @@ -194,9 +191,6 @@
  23. %{__cat} %{SOURCE11} >> .mozconfig
  24. %endif
  25. -# set up our default bookmarks
  26. -cp %{default_bookmarks_file} $RPM_BUILD_DIR/mozilla/profile/defaults/bookmarks.html
  27. -
  28. #---------------------------------------------------------------------
  29. @@ -248,10 +242,6 @@
  30. %{__cp} rh-default-prefs $RPM_BUILD_ROOT/%{mozappdir}/defaults/pref/all-redhat.js
  31. %{__rm} rh-default-prefs
  32. -# set up our default bookmarks
  33. -%{__rm} -f $RPM_BUILD_ROOT%{mozappdir}/defaults/profile/bookmarks.html
  34. -ln -s %{default_bookmarks_file} $RPM_BUILD_ROOT%{mozappdir}/defaults/profile/bookmarks.html
  35. -
  36. %{__cat} %{SOURCE50} | %{__sed} -e 's,FFDIR,%{mozappdir},g' -e 's,LIBDIR,%{_libdir},g' > \
  37.    $RPM_BUILD_ROOT%{mozappdir}/firefox-xremote-client
复制代码

2. 在安装 rpmbuild 好的包时加 --nodeps 开关:
rpm -Uvh --nodeps /usr/src/redhat/RPMS/x86_64/firefox-2.0.0.10-2.x86_64.rpm
不加 --nodeps 会报 "gecko-libs = 1.8.0.12 is needed by package yelp" 错误...

然后就可以告别 CentOS5 的 Firefox1.5 时代了 ...
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-28 19:52:17 | 显示全部楼层
Post by kiding;1811811

......


我知道你是 onelay ...
我是一个比较阳光的人,平时看不惯的人和事并不多,但你的行为确实让人看不惯。建议你多到户外活动活动,对你的心里健康有帮助。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-28 20:00:52 | 显示全部楼层
有人在 F8 里成功运行 Firefox3 么?

我这里运行 Firefox3 要崩溃, 还一直只有运行 F8 自带的 Firefox2 ...

今天在 Firefox 里打开了几十个网页,然后开车送一个朋友到机场去了(这一个多小时内没人动机器),回来后发现 Firefox 的内存占用竟然...... 见附图, 短期内要解决内存泄漏的问题是不可能的。

这段时间跟踪 mozilla 的 bugzilla, 发现 firefox3 解决了不少内存泄漏的 bug ... 但我在 F8 里没法正常运行 firefox3... 有在 F8 里成功运行 firefox3 的朋友么?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2008-1-28 22:16:42 | 显示全部楼层
ff用久了确实内存占用比较大,不过我一般上网的时候不会干太多别的事情,所以这个问题对我影响不大。再说ff3也快来了,等着好了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表