阅读:3202回复:14
ayakawa的7.0RC1的编译版出来了...
呃用了两个多小时,确实内存还是比官方版本多.
刚运行的时候不觉得,开的标签多了,时间长了,内存就上去了, 弃用之. ============== 更新下, 应该是我测试有误, 又重新试了一会, 正常... 改一下标题. 开始不知道什么原因,内存直接上G了, 大概是因为用了supercache对firefox目录有缓存? 我是直接用ayakawa的版本覆盖原版的... ============= 今天新鲜出炉的, 文件版本号比官方的还新一点7.0.0.4285, 官方的是7.0.0.4282 实际使用很糟糕, 主要是内存占用太多了, 和用9.0 nightly版的感觉完全一样. 不知道是怎么弄的? 换回官方的版本,一切正常. 记得3.x,4.0的时候, 这个编译版的表现是非常好的, 现在怎么这样了... 等待tete009和论坛dongyuanxun的. |
|
|
1楼#
发布于:2011-09-25 18:11
Re: 用了一会儿ayakawa新出的7.0RC1的编译版, 很糟糕...
奇怪,我下来看了下,内存占用没觉得反常啊。估计7.0 release明天就该出现在ftp了吧,也不太确定。 这次我也不确定是否编译x64版。 |
|
2楼#
发布于:2011-09-25 18:11
Re: 用了一会儿ayakawa新出的7.0RC1的编译版, 很糟糕...
弱弱路过,事实上没用过其他编译版的……话说,源代码如果一样,编译的结果不是应该差不多么(不考虑不同IDE的区别的话) |
|
|
3楼#
发布于:2011-09-25 18:11
|
|
4楼#
发布于:2011-09-25 18:11
等tete009出来再看看
|
|
5楼#
发布于:2011-09-25 18:11
同楼上等tete09
顺便看UA |
|
6楼#
发布于:2011-09-25 18:11
Re: 用了一会儿ayakawa新出的7.0RC1的编译版, 很糟糕...
dongyuanxun: 这样啊……那么目前有哪些人在放binary呢?哪些内存占用比较小(或者其他性能比较高?) (在win7 x86下) |
|
|
7楼#
发布于:2011-09-25 18:11
Re: 用了一会儿ayakawa新出的7.0RC1的编译版, 很糟糕...
tete009/ayakawa/pigfoot都有的 我自己也有编译 理论上来说,/O1(等价于/O2 /Os)编译的占用内存(不论exe/dll体积还是内存分配)最小,但性能损失较大(禁用内联了),所以没有人用这个编译。 /Ox编译的据msdn上说是完全优化,速度最快,内存占用也较多,但实际测试使用(没比较Firefox,只是参考了很多项目的编译情况)上/Ox编译的速度比/O2大多数情形要慢,内存占用还多,pigfoot使用该开关编译。此外,pigfoot还额外使用了fastmath开关,这个开关我第一次编译时也有使用,不过tete009给我说这个开关对FF有些副作用,所以我后来的编译去掉了这个。 /O2是最常用的,兼顾了速度和内存,不过实际使用比/Ox要快的,其他人一般用该开关。 所以,使用/O2的编译版能够造成性能差异的只有采用的不同版本VC编译器、私有性能补丁和pgo。 tete009使用VC2005编译,他的补丁有一部分是私有的(和内存管理有关),所以其他人使用tete009的补丁时只能打一部分,内存管理那部分无效。 其他人大部分使用VC2010编译,补丁有很多,但对性能有影响的几乎没有,直接使用tete009补丁的我还没发现。 我编译的打入了tete009的补丁,虽然内存管理那一块儿也可以直接搞出导入库来,不过分发会破坏tete009的版权,所以那一块儿我没用。 在pgo方面,除了tete009和我编译的,其他人的pgo都是采用默认的(猜测,因为他们提供的过程没有谈及这一部分,而且是自动脚本)。 因为要改善pgo,就必须要打断FF的自动编译进程,变成人工采集信息(写自动化脚本也可,不过要改太多的python脚本,我又不熟),费时间,所以tete009只对XUL进行了人工采集,js还是使用默认的。 我编译的采集的信息比较多,具体可以参照我的betterpgo:https://code.google.com/p/pcxfirefox/source/browse/#svn%2Ftrunk%2Fbetterpgo%2Fjs%2FV8 因为比较费时间,所以我编译5的时候只跑了有限的几个项目(第一次引入betterpgo,也不熟),编译6的时候跑的项目比较多,这样比较第三方编译FF时,会发现sunspider性能差异不大(因为这个是FF默认使用的PGO),我的V8和Kraken成绩较高。其他测试我没比较优劣。 X64编译还有其他的一些情形,我可能在这个版本或者下个版本编译x64版进行实验。 |
|
8楼#
发布于:2011-09-25 18:11
Re: 用了一会儿ayakawa新出的7.0RC1的编译版, 很糟糕...
您好,我編譯Firefox PGO for Linux已多年 性能上可以超越win上的tete009 https://skydrive.live.com/?cid=7658a515 ... 4CBF%21264 但在windows上編譯還是頭一回 下面這個鍵結,是我自己編譯的第一個Firefox http://www.4shared.com/dir/AY2b4IHS/_on ... =116374194 沒有任何性能上優化,因為不得其門 想跟您請教一下更細節的編譯方法 聽您提到原本的PGO編譯使用舊版本的Sunspider 想請教您,如果我要引入您的PGO方法 具體要如何修改?我資質於鈍,您的這個我看不懂 https://code.google.com/p/pcxfirefox/so ... %2Fjs%2FV8 希望您能指點一二,謝謝! 我的編譯環境是WIN7 x32 VC++ 2010/2008 Express |
|
9楼#
发布于:2011-09-25 18:11
Re: 用了一会儿ayakawa新出的7.0RC1的编译版, 很糟糕...
Lawliet: 我是在他应用pgo的地方强制暂停了 在mozconfig里pgo的地方替换为 mk_add_options PROFILE_GEN_SCRIPT='cscript E:/Mozilla/PgoMsg.vbs' pgomsg.vbs内容如下: Dim r Do r = MsgBox("Please push [Yes] button after collecting the profile data manually.", 4 + 48 + 256, "Mozilla PGO") Loop While r <> 6 这样FF编译就会停住,你可以执行任何的操作了。比如到bin目录里运行FF(好像还缺少一个pgo的dll,你可以到vc目录里复制过来),跑一些测试,我的那些测试项目可以用svn拖到本地,然后在FF里跑,因为现在是收集信息阶段,所以测试时间非常长,你可以挑拣一些常用的项目来跑。注意不要在测试时死掉,否则信息不能生成。收集完了,点击Y即可,编译合并PGO会开始。 我准备看下python,看看怎样vbs的脚本改成python脚本,这样编译方法就能跨平台了。 不过目前来说,gcc的lto和pgo bug(需要gcc4.6以上)有些多,Linux下最好不要同时采用,虽然有避免的方法,但对FF来说太麻烦了(主要是一旦修改编译参数,FF编译就不认账了……只能改makefile.in.....)。 |
|
10楼#
发布于:2011-09-25 18:11
Re: 用了一会儿ayakawa新出的7.0RC1的编译版, 很糟糕...
我是在他应用pgo的地方强制暂停了 謝謝,您的方法是在原本進行javascript測試的地方停止 然後自己開啟需要優化網站的地方嗎? 我記得以前有個編譯項,可以做到停止編譯,自己會起始一個空白頁的Firefox供測試 mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-@CONFIG_GUESS@ 但我不知道這個方法是否在win下同樣起作用 另外想再請教.mozconfig的寫法 這是我在win下編譯的(無任何性能優化) . $topsrcdir/browser/config/mozconfig mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/ff-pgo mk_add_options MOZ_CO_PROJECT=browser mk_add_options MOZ_MAKE_FLAGS="-j5" #mk_add_options MOZ_PACKAGE_NSIS=1 #ac_add_options --enable-application=browser #ac_add_options --enable-update-channel=nightly #ac_add_options --enable-optimize #ac_add_options '--enable-optimize=-O2 -GL -arch:SSE2 -GS- -DTT_MEMUTIL -FI tmemutil.h' ac_add_options '--enable-optimize #ac_add_options --enable-optimize="-O2" ac_add_options --disable-debug ac_add_options --disable-tests ac_add_options --disable-installer --disable-updater ac_add_options --disable-accessibility #ac_add_options --enable-update-packaging #ac_add_options --disable-vista-sdk-requirements #ac_add_options --disable-static ## # ##form tete009 #ac_add_options --disable-auto-deps #ac_add_options --disable-jemalloc #ac_add_options --disable-crashreporter #ac_add_options --disable-activex-scripting #ac_add_options --disable-activex 而以下是我在Linux用的.mozconfig # #make -f client.mk profiledbuild #make -f client.mk build #make package #make distclean # # #patch -Np1 -i firefox-version.patch #patch -Np1 -i mozilla-pkgconfig.patch #patch -Np1 -i mozilla-firefox-1.0-lang.patch #patch -Np2 -i mozilla-libjpeg-turbo.patch #patch -Np1 -i reload-new-plugins.patch #patch -Np1 -i firefox-browser-css.patch # # . $topsrcdir/xulrunner/config/mozconfig . $topsrcdir/browser/config/mozconfig mk_add_options MOZ_CO_PROJECT=browser ac_add_options --enable-application=browser ac_add_options --prefix=/usr --libdir=/usr/lib ## System libs are preferred ac_add_options --with-system-nspr --with-system-nss --with-system-zlib ac_add_options --with-system-bz2 --with-system-jpeg --with-system-png ac_add_options --with-system-libvpx --with-system-libevent ac_add_options --enable-system-sqlite --enable-system-cairo --enable-system-lcms ac_add_options --enable-system-hunspell --with-pthreads #ac_add_options --disable-libxul ac_add_options --enable-ipc --disable-static ac_add_options --disable-installer --disable-updater ## Optimize ac_add_options --disable-pedantic --enable-jemalloc --enable-xterm-updates ### Reverse these lines (enable vs disable) for a debug build ac_add_options --disable-debug --disable-tests ac_add_options --disable-mochitest --enable-profile-guided-optimization ac_add_options --disable-crashreporter --enable-strip --enable-install-strip ac_add_options --enable-optimize #ac_add_options --enable-optimize="-mtune=core2 -pipe -O3 -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -fpermissive" ### ### For a debug build, uncomment these as well #export CFLAGS="$CFLAGS -gdwarf-2" #export CXXFLAGS="$CXXFLAGS -gdwarf-2" #export MOZ_DEBUG_SYMBOLS=1 ## Edit these as you see fit ac_add_options --enable-default-toolkit=cairo-gtk2 # cairo-gtk2-dfb, cairo-gtk2, or cairo-qt ac_add_options --enable-official-branding --enable-startup-notification ac_add_options --disable-parental-controls --disable-java-xpcom ac_add_options --disable-xprint --disable-gconf --disable-gnomevfs ac_add_options --enable-extensions=default --enable-printing --enable-xinerama ac_add_options --enable-pango --enable-canvas --enable-canvas3d --enable-svg ac_add_options --enable-smil --enable-shared-js --enable-url-classifier ac_add_options --enable-places --enable-gio --enable-libnotify # This is disabled in order to speed Firefox up, it prevents checking Google # for every single URL Firefox processes. If you're using this package, it's # likely you already know enough to be safe online, or are paranoid # (perhaps with reason) about Google getting your URLs (checksummed?). # Also, this is GNU/Linux, we have somewhat less to fear ;-) ac_add_options --disable-safe-browsing #mk_add_options MOZ_MAKE_FLAGS=-j5 mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/ff-pgo mk_add_options PROFILE_GEN_SCRIPT='$(PYTHON) $(MOZ_OBJDIR)/_profile/pgo/profileserver.py' mk_add_options PYTHONPATH='$(OBJDIR)/_profile/pgo' mk_add_options BUILD_OFFICIAL=1 mk_add_options MOZILLA_OFFICIAL=1 export BUILD_OFFICIAL=1 export MOZILLA_OFFICIAL=1 # Want to change the compiler? #export CC='gcc-4.6' #export CXX='g++-4.6' 想請教我現在如果只想先編譯性能優化的PGO 使用傳統的PGO方法,您的PGO方法先不用 其它細節跟方法,等傳統PGO我編譯成功了再來研究 是否只需要把我win上的.mozconfig添加下面這幾項就好? ac_add_options --enable-profile-guided-optimization mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/ff-pgo mk_add_options PROFILE_GEN_SCRIPT='$(PYTHON) $(MOZ_OBJDIR)/_profile/pgo/profileserver.py' mk_add_options PYTHONPATH='$(OBJDIR)/_profile/pgo' mk_add_options BUILD_OFFICIAL=1 mk_add_options MOZILLA_OFFICIAL=1 export BUILD_OFFICIAL=1 export MOZILLA_OFFICIAL=1 另外再請教我在win上的optimize參數問題 我最先編譯的沒有添加任何開關,後來參考tete009 我做了這樣的改變,但是這樣子編譯好像編譯不過去,會卡住在一個地方 ac_add_options '--enable-optimize=-O2 -GL -arch:SSE2 -GS- -DTT_MEMUTIL -FI tmemutil.h 請問您知道我的編譯過程出了哪些問題嗎? 謝謝! |
|
11楼#
发布于:2011-09-25 18:11
没见过你写的这个暂停的方法
你的.mozconfig一般也就是这个写法,没有什么问题,添加的那些也很传统,一般第三方编译都有。 tete009的那个就是我之前说的不能采用的部分 即 -DTT_MEMUTIL -FI tmemutil.h 这俩需要hacker他的dll,搞出头文件声明和导入库才可以 |
|
12楼#
发布于:2011-09-25 18:11
沒事了,原來是link的時候太久
一直以為假死.... 不過編譯非PGO就花了我72分鐘了 我在Linux上編譯PGO只要54分鐘而已... 不知我哪裡弄錯了? 我接著要開始編譯PGO了 謝謝指教! |
|
13楼#
发布于:2011-09-25 18:11
因為tete009比較經常看見有討論所以有點耳熟,其他的都不怎麼聽過呢
不過內存佔用和性能這蹺蹺板,平衡確實不太容易掌握…… 所以我還是用官方版好了,省心……畢竟10%左右或者稍微多一些的優化,對於日常瀏覽應該不會影響太明顯——除非是重度網蟲XD |
|
|
14楼#
发布于:2011-09-25 18:11
内存上,目前没发现ayakawa版本有啥问题,比palemoon的Pale Moon 7 r4 (b6) 在内存表现上要好一些。
|
|