Lawliet
火狐狸
火狐狸
  • UID34414
  • 注册日期2010-11-03
  • 最后登录2017-04-02
  • 发帖数201
  • 经验13枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 社区居民
  • 忠实会员
阅读:9443回复:63

VC2010編譯Firefox 7.0 PGO卡在二次編譯(已解決)

楼主#
更多 发布于:2011-09-26 19:25
我的環境是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"
Lawliet
火狐狸
火狐狸
  • UID34414
  • 注册日期2010-11-03
  • 最后登录2017-04-02
  • 发帖数201
  • 经验13枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 社区居民
  • 忠实会员
1楼#
发布于:2011-09-26 19:25
Re: VC2010編譯Firefox 7.0 PGO卡在二次編譯
用PyMake,参见 https://developer.mozilla.org/en/pymake

大俠您好

想跟您請教使用pymake編譯後,link的時候貌似會變回單進程
請問有辦法讓link的時候也多線程嗎?
Lawliet
火狐狸
火狐狸
  • UID34414
  • 注册日期2010-11-03
  • 最后登录2017-04-02
  • 发帖数201
  • 经验13枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 社区居民
  • 忠实会员
2楼#
发布于:2011-09-26 19:25
-GL我在別的帖子已經搜到了

我想再問64bit上邊一32bit binary
需要在mozconfig添加下列項目嗎?
ac_add_options --target=i686-pc-mingw32
ac_add_options --host=
Lawliet
火狐狸
火狐狸
  • UID34414
  • 注册日期2010-11-03
  • 最后登录2017-04-02
  • 发帖数201
  • 经验13枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 社区居民
  • 忠实会员
3楼#
发布于:2011-09-26 19:25
如果4Gb還夠用,那我呆會就把目前的OS改成64bit了
就怕內存不夠,改成64bit一樣悲劇...
Lawliet
火狐狸
火狐狸
  • UID34414
  • 注册日期2010-11-03
  • 最后登录2017-04-02
  • 发帖数201
  • 经验13枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 社区居民
  • 忠实会员
4楼#
发布于:2011-09-26 19:25
究竟編譯需要多少內存啊?
我的win7 x32 4Gb
兩次了,都是在同一個地方提示空間不夠...

图片:1234.jpg

Lawliet
火狐狸
火狐狸
  • UID34414
  • 注册日期2010-11-03
  • 最后登录2017-04-02
  • 发帖数201
  • 经验13枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 社区居民
  • 忠实会员
5楼#
发布于:2011-09-26 19:25
我懂了...
原來pgc要複製到跟同名的pgd目錄一起
Lawliet
火狐狸
火狐狸
  • UID34414
  • 注册日期2010-11-03
  • 最后登录2017-04-02
  • 发帖数201
  • 经验13枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 社区居民
  • 忠实会员
6楼#
发布于:2011-09-26 19:25
再問個問題
請問您自己在編譯的時候pgc, pgd文件都產生在同個目錄嗎?
因為我的pgc, pgd都分散在各個文件夾,也就是在obj目錄內
我追蹤了obj內關於pgc, pgd文件,散落在個個文件夾中
請問這樣是否就不必再複製了?
Lawliet
火狐狸
火狐狸
  • UID34414
  • 注册日期2010-11-03
  • 最后登录2017-04-02
  • 发帖数201
  • 经验13枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 社区居民
  • 忠实会员
7楼#
发布于:2011-09-26 19:25
貌似我的編譯環境有問題
我的mozconfig沒有什麼太大的改變
這次一次編譯完後,手動進行pgo採集
已經可以在obj目錄下發現pgc, pgd文件....
文件好多,看得我眼花撩亂

jemalloc的patch謝謝您
我等這次編譯結束再打上這個patch

我先採集pgo信息
謝謝您的幫助!
Lawliet
火狐狸
火狐狸
  • UID34414
  • 注册日期2010-11-03
  • 最后登录2017-04-02
  • 发帖数201
  • 经验13枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 社区居民
  • 忠实会员
8楼#
发布于:2011-09-26 19:25
貼錯圖了...

图片:123.png

Lawliet
火狐狸
火狐狸
  • UID34414
  • 注册日期2010-11-03
  • 最后登录2017-04-02
  • 发帖数201
  • 经验13枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 社区居民
  • 忠实会员
9楼#
发布于:2011-09-26 19:25
是的,我是用make -f client.mk profiledbuild編譯的

我剛剛又編譯了一次,mozconfig只添加
ac_add_options --enable-jemalloc
但是編譯開始後五分鐘就會錯誤
我的mozconfig
. $topsrcdir/browser/config/mozconfig
#mk_add_options MOZ_PACKAGE_NSIS=1
ac_add_options --enable-application=browser
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
#
#
## optimize
ac_add_options --enable-profile-guided-optimization
#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 -Oy -Gy -GF -GL -GS- -GR- -arch:SSE2"
ac_add_options --enable-jemalloc
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
#ac_add_options --enable-extensions=default 
#ac_add_options --enable-strip --enable-install-s  trip
#
#
## 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
#
#  auto PGO build
mk_add_options MOZ_MAKE_FLAGS="-j1"
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 PROFILE_GEN_SCRIPT="sh C:/Users/Lawliet/Desktop/c_Firefox/run-firefox.sh"
mk_add_options PYTHONPATH='$(OBJDIR)/_profile/pgo'
#mk_add_options MOZ_CO_PROJECT=browser


图片:123.png

Lawliet
火狐狸
火狐狸
  • UID34414
  • 注册日期2010-11-03
  • 最后登录2017-04-02
  • 发帖数201
  • 经验13枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 社区居民
  • 忠实会员
10楼#
发布于:2011-09-26 19:25
現在一次編譯結速後,進行採集過程
obj目錄內會隨著過程增加檔案
但依然找不到*.pgc *.pgd(貌似增加的檔案其實是temp)
我等等還會再編譯一次

謝謝指教
Lawliet
火狐狸
火狐狸
  • UID34414
  • 注册日期2010-11-03
  • 最后登录2017-04-02
  • 发帖数201
  • 经验13枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 社区居民
  • 忠实会员
11楼#
发布于:2011-09-26 19:25
我現在的問題是一次編譯跟二次編譯產生的binary
它們的md5是一樣的,既沒有採集到任何pgo信息

採集pgo信息,應該就是在一次編譯結束以後
開啟/obj/dist下的firefox,並進入v8, sunspider等相關網站吧?
Lawliet
火狐狸
火狐狸
  • UID34414
  • 注册日期2010-11-03
  • 最后登录2017-04-02
  • 发帖数201
  • 经验13枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 社区居民
  • 忠实会员
12楼#
发布于:2011-09-26 19:25
我剛找到另一個firefox.exe
在C:\mozilla-release\ff-pgo\browser\app
無法直接執行,看起來缺少很多lib
是否應該從vs2010那裡複製lib?
又應該複製哪個檔呢?
Lawliet
火狐狸
火狐狸
  • UID34414
  • 注册日期2010-11-03
  • 最后登录2017-04-02
  • 发帖数201
  • 经验13枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 社区居民
  • 忠实会员
13楼#
发布于:2011-09-26 19:25
……
不是在源碼目錄裡找哇,在你obj目錄裡找……

我的obj是在/ff-pgo,這應該沒錯啊
我剛又跑了v8 benchmark,把窗口關掉又打開
還是沒有發現生成



[quote="dongyuanxun"]採集完複製到目錄後
再按Yes[/quote]
所有的pgc與pgd是否都是出現在同一個資料夾
但是放的位置卻不太一樣?
Lawliet
火狐狸
火狐狸
  • UID34414
  • 注册日期2010-11-03
  • 最后登录2017-04-02
  • 发帖数201
  • 经验13枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 社区居民
  • 忠实会员
14楼#
发布于: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
上一页
游客

返回顶部