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

我目前一次編譯還沒結束
等待中,有問題再向您求教
dongyuanxun
非常火狐
非常火狐
  • UID28632
  • 注册日期2009-04-19
  • 最后登录2013-02-14
  • 发帖数898
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
46楼#
发布于:2011-09-26 19:25
pgo必须含有pgd文件,就是扩展名为pgd的那个,否则编译会失败
你如果运行多次,会发现产生很多pgc扩展名的文件,这个就是pgo采集信息
如果pgd文件没有找到pgc那么就会禁用pgo,找到一个就应用,多个就先合并再应用

所以要注意,编译失败后重编译时他会rm *.pgd,这导致你采集的pgo信息一点儿用也没有
如果一次编译无障碍,那么他就不会执行rm操作
Lawliet
火狐狸
火狐狸
  • UID34414
  • 注册日期2010-11-03
  • 最后登录2017-04-02
  • 发帖数201
  • 经验13枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 社区居民
  • 忠实会员
47楼#
发布于:2011-09-26 19:25
我的鏈接差不多在60~70分鐘左右
Q6600@3Ghz,但-j1
單線程...開多線會停止編譯

tete009的那個提昇
貌似這個應用很不普遍
我先要求javascript render性能就好了

那如果不打上tete009補丁
那進行pgo編譯時,只要不失敗
是否pgd文件就不會被刪除?

問在詳細一點,所謂pgd文件只的是後奏名為*.pgd的文件
還是叫做pgd的文件夾裡面所有的東西?
一次編譯還在進行中,先問個明白
怕到時候手忙腳亂

謝謝~
dongyuanxun
非常火狐
非常火狐
  • UID28632
  • 注册日期2009-04-19
  • 最后登录2013-02-14
  • 发帖数898
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
48楼#
发布于:2011-09-26 19:25
发个图
这个电脑太差……
链接了5个小时了
dongyuanxun
非常火狐
非常火狐
  • UID28632
  • 注册日期2009-04-19
  • 最后登录2013-02-14
  • 发帖数898
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
49楼#
发布于:2011-09-26 19:25
我看了下FF7已经集成了2010 jemalloc的更改,这个不用打
tete009把一些操作使用intrin函数替代了,这部分可以提高某些性能
最好的例子是
http://ie.microsoft.com/testdrive/Perfo ... ingImages/
选择Large IE Logo
tete的帧数最高

不过中间可能遇到一些编译上的问题,这是因为tete用的是2005,你如果用2008或者2010,代码方面有些不兼容,那么要在他的intrin函数前包含intrin.h,把他自带的声明去掉,否则无法编译通过。

另外,我刚刚编译过程里发现,FF7的build过程似乎发生了更改,他在rebuild时会删除pgd文件,而这种情况在FF6时不会发生,所以使用tete009补丁编译失败时,更改后要保存所有目录的pgd文件到一个其他目录里,在pgo合并之前把pgd复制到相关文件夹,否则pgo信息会读取pgd失败……
如果你能一次编译通过,那么pgd就不会被删除
Lawliet
火狐狸
火狐狸
  • UID34414
  • 注册日期2010-11-03
  • 最后登录2017-04-02
  • 发帖数201
  • 经验13枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 社区居民
  • 忠实会员
50楼#
发布于:2011-09-26 19:25
編譯前再請教一下
tete009的那噱補丁,跟您wiki上的那個添加jemalloc
這些會提高性能嗎?
dongyuanxun
非常火狐
非常火狐
  • UID28632
  • 注册日期2009-04-19
  • 最后登录2013-02-14
  • 发帖数898
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
51楼#
发布于:2011-09-26 19:25
pgo信息即pgc扩展名的那些
pgc一般要放到pgd一起的地方
比如
firefox?.pgc就放到firefox.pgd的目录里
其他信息以此类推

所以你用dist/bin或者dist/firefox都是一样的
Lawliet
火狐狸
火狐狸
  • UID34414
  • 注册日期2010-11-03
  • 最后登录2017-04-02
  • 发帖数201
  • 经验13枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 社区居民
  • 忠实会员
52楼#
发布于:2011-09-26 19:25
我剛剛用舊版本sunspider測試
也就是自動開窗運行腳本
我追蹤了那個自動開啟的firefox窗口
目錄是在/dist/firefox/firefox.exe

請問如果是因為bug因素影響
想請問我應該從哪裡提取pgo採集的信息?
又應該將這些信息複製到哪一個目錄內?
謝謝!
dongyuanxun
非常火狐
非常火狐
  • UID28632
  • 注册日期2009-04-19
  • 最后登录2013-02-14
  • 发帖数898
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
53楼#
发布于:2011-09-26 19:25
应该是/dist/bin
奇怪,你看看历史记录,pgo信息是否进行合并了

有时pgomerge会有这样的bug,你可能需要把采集到的pgo信息复制到各个文件的编译obj目录里去

我过一会儿开始编译FF7,暂时先用的tete009的
Lawliet
火狐狸
火狐狸
  • UID34414
  • 注册日期2010-11-03
  • 最后登录2017-04-02
  • 发帖数201
  • 经验13枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 社区居民
  • 忠实会员
54楼#
发布于:2011-09-26 19:25
請問一次編譯後,手動開啟調教的那個firefox究竟是哪個目錄的才對?
在@TOPSRCDIR@/dist/bin跟@TOPSRCDIR@/dist/chrome裡面都有firefox
也都可以執行

我開啟@TOPSRCDIR@/dist/bin裡頭的firefox進行手動調教
編譯完後,調教的項目似乎沒有任何性能提昇(至少分數上看不出來)
與您的自編譯版有顯著的差距
請問我還有什麼地方沒有做到?

謝謝
Lawliet
火狐狸
火狐狸
  • UID34414
  • 注册日期2010-11-03
  • 最后登录2017-04-02
  • 发帖数201
  • 经验13枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 社区居民
  • 忠实会员
55楼#
发布于: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
dongyuanxun
非常火狐
非常火狐
  • UID28632
  • 注册日期2009-04-19
  • 最后登录2013-02-14
  • 发帖数898
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
56楼#
发布于:2011-09-26 19:25
其实改interval的那个是我在FF5编译时采用的方法,这个好处是能够自动化编译,缺点就是测试不均衡,有的跑完还有一大堆时间,有的时间到了还没跑完,而且不要修改source code的,要改obj文件夹的pgo部分,因为他原来有个复制操作,我不知道在哪个makefile.in里体现的,没去认真找。所以我编译6的时候就使用vbs强制中断,然后自行运行测试了。
体积变大的话增加链接消去开关试试,即加入
export MOZ_OPTIMIZE_LDFLAGS="-opt:ref,icf"
mk_add_options MOZ_OPTIMIZE_LDFLAGS="-opt:ref,icf"

一般不会变得太大
Lawliet
火狐狸
火狐狸
  • UID34414
  • 注册日期2010-11-03
  • 最后登录2017-04-02
  • 发帖数201
  • 经验13枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 社区居民
  • 忠实会员
57楼#
发布于: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

謝謝!
dongyuanxun
非常火狐
非常火狐
  • UID28632
  • 注册日期2009-04-19
  • 最后登录2013-02-14
  • 发帖数898
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
58楼#
发布于:2011-09-26 19:25
因为gcc的lto有sse2的bug嘛,所以一般加入-msse2就行了,其他情形具体情况具体分析。

不知道你说的libjpeg-turbo patch是什么,能提供吗?

interval那个建议改个较大的数,3000就是3s,跑比较长的测试我估计15s都跑不完……

ps:FF7已经在FTP上了,我会等tete009编译完再进行编译,这样我容易比对
Lawliet
火狐狸
火狐狸
  • UID34414
  • 注册日期2010-11-03
  • 最后登录2017-04-02
  • 发帖数201
  • 经验13枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 社区居民
  • 忠实会员
59楼#
发布于: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 =
     [
  "betterpgo/v8_suite.html",
  "betterpgo/sunspider_91.html",
  "betterpgo/Kraken_11.html"
     ];
 var interval = 100000; // 100000
 var idx = 0;
 var w;


紅色的部份預設是3000; // 15000
我的理解是3秒間隔,跟每個減隔最常有15秒可供測試
不知我的理解是否正確?
游客

返回顶部