阅读:9389回复:63
VC2010編譯Firefox 7.0 PGO卡在二次編譯(已解決)
我的環境是win7 x32 4GB, VC++ 2010 Express
編譯Firefox 7.0 with PGO 目前的問題是我一次編譯可過 也就是編譯過程有到跳出Firefox跑sunspider這邊 跑完過了幾分鐘,編譯畫面停止刷新 make等相關進程不再佔用CPU資源 最後停在這裡 图片:2011-09-26_192152.png 查看dist目錄裡面一次編譯結速後的binary,是可以執行的 但就是二次編譯這樣卡住 請問有哪位大俠知道我的編譯出了什麼問題嗎? 這是我的mozconfig . $topsrcdir/browser/config/mozconfig #mk_add_options MOZ_PACKAGE_NSIS=1 ac_add_options --enable-application=browser #ac_add_options --enable-optimize="-O2 -GL -arch:SSE2 -GS" ac_add_options --enable-optimize="-O2 -GL -arch:SSE2" #ac_add_options --enable-profile-guided-optimization ac_add_options --disable-debug ac_add_options --disable-tests ac_add_options --disable-installer --disable-updater --disable-update-channel ac_add_options --disable-accessibility #ac_add_options --enable-update-packaging #ac_add_options --disable-vista-sdk-requirements #ac_add_options --disable-static #ac_add_options --with-l10n-base=/lang #ac_add_options --enable-ui-locale=zh-TW #ac_add_options --enable-official-branding # ## 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 # ## PGO build 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 MOZ_CO_PROJECT=browser mk_add_options MOZ_MAKE_FLAGS="-j4" |
|
1楼#
发布于:2011-09-26 19:25
Re: VC2010編譯Firerfox 7.0 PGO卡在二次編譯
剛在Mozilla US找到一個跟我有同樣問題的人http://forums.mozillazine.org/viewtopic ... &t=2174999 問題描述跟我完全一樣 一次編譯成功,二次編譯卡住 make沒有佔用任何cpu資源,也沒有得到任何error 似乎跟mk_add_options MOZ_MAKE_FLAGS參數有關 我改成-j1重新編譯一次再回來 |
|
2楼#
发布于:2011-09-26 19:25
Re: VC2010編譯Firefox 7.0 PGO卡在二次編譯
改成-j1後還真的編譯成功了只是同硬件下,linux用gcc 4.6.1 -O3 -j5 編譯PGO只要54分鐘 VS2010 -O2 -j1要148分鐘.... 性能上比不上tete009跟PcX 接下來就要跟dongyuanxun您多多請教了 還請您包涵 謝謝! |
|
3楼#
发布于:2011-09-26 19:25
Re: VC2010編譯Firefox 7.0 PGO卡在二次編譯
不知道是sorce code的問題還是gcc的問題我在Firefox 4以前用的參數是比較高的 但後來不知道怎麼搞的-march=i686會報錯 改成-march=core2就又正常,有幾個開關 -O3 -Ofast時好時壞,有的時候編譯會error 有的時候又可以過,但亦有時性能反而下降 反而打libjpeg-turbo patch,顯著提昇render性能 提速的感覺還比較明顯 我接著要來編譯您的betterpgo提速方法 http://code.google.com/p/pcxfirefox/wiki/firefox5VC2010 我將原本的老版本的sunspider去掉 添加了以下 <head> <meta http-equiv="refresh" content="0;url=https://krakenbenchmark.mozilla.org/kraken-1.1/driver.html" /> </head> <head> <meta http-equiv="refresh" content="0;url= http://www.webkit.org/perf/sunspider-0.9.1/sunspider-0.9.1/driver.html" /> </head> <head> <meta http-equiv="refresh" content="0;url=http://v8.googlecode.com/svn/data/benchmarks/v6/run.html" /> </head> 目前還沒有編譯 我對於ff-src/build/pgo/index.html內容有些疑問 看了其他帖,您有提高關於延遲時間 請問這個延遲時間是這個部分嗎? var list = 紅色的部份預設是3000; // 15000 我的理解是3秒間隔,跟每個減隔最常有15秒可供測試 不知我的理解是否正確? |
|
4楼#
发布于:2011-09-26 19:25
libjpeg-turbo可以加速linux上圖檔的渲染
貌似在windows下是不起作用的 這是AUR上的Firefox-PGO 我的linux自編譯版就是基於這個套件的patch及它最初的.mozconfig https://aur.archlinux.org/packages.php?ID=22296 http://libjpeg-turbo.virtualgl.org/ https://bbs.archlinux.org/viewtopic.php?id=73422&p=1 另外再請教下幾個問題 我用您的betterpgo編譯成功 但性能貌似只有小幅提昇(或心理作用?) sunspider成績持平 V8 benchmark及Kraken小幅度提昇 但依然不及您的6.0.2版的性能 性能提昇不顯著,體積反而卻增加了不少 http://www.4shared.com/file/k6s_XUGG/fi ... -sse2.html? 第一次編譯結束後彈出窗口 貌似我的批次編寫錯誤 並沒有進行自動測試我所安排的三個測試 後來這三個測試,我是在緊張的情況下手動進行 三個測試均被中段一次,但後來還是有完整跑完測試一次 是否改用您編寫的這個腳本 在進行一次編譯 就可在獲得性能提昇? http://code.google.com/p/pcxfirefox/sou ... Fbetterpgo 謝謝! |
|
5楼#
发布于:2011-09-26 19:25
謝謝指教
在linux上可以自行編寫腳本,暫停老版本sunspider測試 運行自己想要的測試 .mozconfig裡PGO的地方修改為 mk_add_options PROFILE_GEN_SCRIPT="sh /home/lawliet/run-firefox.sh" 然後新增腳本,內容為 export NO_EM_RESTART=1 mkdir $OBJDIR/_profileprofile $OBJDIR/dist/bin/firefox -no-remote -profile $OBJDIR/_profileprofile 我在linux下編譯的firefox已經應用您的betterpgo 晚一點繼續折騰win平台的betterpgo |
|
6楼#
发布于:2011-09-26 19:25
請問一次編譯後,手動開啟調教的那個firefox究竟是哪個目錄的才對?
在@TOPSRCDIR@/dist/bin跟@TOPSRCDIR@/dist/chrome裡面都有firefox 也都可以執行 我開啟@TOPSRCDIR@/dist/bin裡頭的firefox進行手動調教 編譯完後,調教的項目似乎沒有任何性能提昇(至少分數上看不出來) 與您的自編譯版有顯著的差距 請問我還有什麼地方沒有做到? 謝謝 |
|
7楼#
发布于:2011-09-26 19:25
我剛剛用舊版本sunspider測試
也就是自動開窗運行腳本 我追蹤了那個自動開啟的firefox窗口 目錄是在/dist/firefox/firefox.exe 請問如果是因為bug因素影響 想請問我應該從哪裡提取pgo採集的信息? 又應該將這些信息複製到哪一個目錄內? 謝謝! |
|
8楼#
发布于:2011-09-26 19:25
編譯前再請教一下
tete009的那噱補丁,跟您wiki上的那個添加jemalloc 這些會提高性能嗎? |
|
9楼#
发布于:2011-09-26 19:25
我的鏈接差不多在60~70分鐘左右
Q6600@3Ghz,但-j1 單線程...開多線會停止編譯 tete009的那個提昇 貌似這個應用很不普遍 我先要求javascript render性能就好了 那如果不打上tete009補丁 那進行pgo編譯時,只要不失敗 是否pgd文件就不會被刪除? 問在詳細一點,所謂pgd文件只的是後奏名為*.pgd的文件 還是叫做pgd的文件夾裡面所有的東西? 一次編譯還在進行中,先問個明白 怕到時候手忙腳亂 謝謝~ |
|
10楼#
发布于:2011-09-26 19:25
好的,謝謝
我目前一次編譯還沒結束 等待中,有問題再向您求教 |
|
11楼#
发布于:2011-09-26 19:25
我現在一次編譯已經結速
目前編譯暫停可以進行手動採集 但我在/dist/bin, /dist/firefox開啟各跑了一次sunspider 9.1 追蹤整個mozilla-release資料夾,沒有找到*.pgc *.pgd的文件 整個文件夾的大小與文件數也沒有變化 這是我的.mozconfig . $topsrcdir/browser/config/mozconfig #mk_add_options MOZ_PACKAGE_NSIS=1 ac_add_options --enable-application=browser #ac_add_options --enable-profile-guided-optimization ac_add_options --disable-debug ac_add_options --disable-tests ac_add_options --disable-installer --disable-updater --disable-update-channel ac_add_options --disable-accessibility #ac_add_options --enable-jemalloc # ## optimize #ac_add_options --enable-optimize="-O2 -GL -arch:SSE2 -GS" #ac_add_options --enable-optimize="-O2 -GL -arch:SSE2" ac_add_options --enable-optimize="-O2 -Ot -Ob2 -Oy -GF -GL -arch:SSE2" #ac_add_options --enable-optimize="-O2 -Ot -Ob2 -Oy -GF -arch:SSE2" #export MOZ_OPTIMIZE_LDFLAGS="-opt:ref,icf" #mk_add_options MOZ_OPTIMIZE_LDFLAGS="-opt:ref,icf" # # #ac_add_options --enable-update-packaging #ac_add_options --disable-vista-sdk-requirements #ac_add_options --disable-static #ac_add_options --with-l10n-base=/lang #ac_add_options --enable-ui-locale=zh-TW #ac_add_options --enable-official-branding # ## from 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 # # auto PGO build mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/ff-pgo #mk_add_options PROFILE_GEN_SCRIPT='$(PYTHON) $(MOZ_OBJDIR)/_profile/pgo/profileserver.py' mk_add_options PROFILE_GEN_SCRIPT='cscript C:/Users/Lawliet/Desktop/c_Firefox/PgoMsg.vbs' #mk_add_options PYTHONPATH='$(OBJDIR)/_profile/pgo' #mk_add_options MOZ_CO_PROJECT=browser mk_add_options MOZ_MAKE_FLAGS="-j1" 那個vbs中斷窗口的意思是採集完了,才按"Yes" 還是要先按"Yes"再採集? 如果採集過程順利,編譯窗口是否會刷新? 就像跑老版本sunspider那樣? 另外我在link的時候出現這樣的提示 對PGO編譯有影響嗎? LINK : warning LINK4256: Profile Guided Optimization is no available of the product: ignoring related options |
|
12楼#
发布于:2011-09-26 19:25
…… 我的obj是在/ff-pgo,這應該沒錯啊 我剛又跑了v8 benchmark,把窗口關掉又打開 還是沒有發現生成 [quote="dongyuanxun"]採集完複製到目錄後 再按Yes[/quote] 所有的pgc與pgd是否都是出現在同一個資料夾 但是放的位置卻不太一樣? |
|
13楼#
发布于:2011-09-26 19:25
我剛找到另一個firefox.exe
在C:\mozilla-release\ff-pgo\browser\app 無法直接執行,看起來缺少很多lib 是否應該從vs2010那裡複製lib? 又應該複製哪個檔呢? |
|
14楼#
发布于:2011-09-26 19:25
我現在的問題是一次編譯跟二次編譯產生的binary
它們的md5是一樣的,既沒有採集到任何pgo信息 採集pgo信息,應該就是在一次編譯結束以後 開啟/obj/dist下的firefox,並進入v8, sunspider等相關網站吧? |
|
上一页
下一页