minghegy
火狐狸
火狐狸
  • UID37982
  • 注册日期2011-12-17
  • 最后登录2014-02-24
  • 发帖数132
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
195楼#
发布于:2011-12-27 13:45
SSE2/SSE3优化不就是自动向量化

哦,我觉得firefox大量用到的是逻辑运算和整数运算,用到simd的基本就是libjpeg吧
具体我也不太懂,就是理论上的推测

[quote="Lawliet"]
北京GMT+8
應該跟論壇上的同胞都一樣的時區[/quote]
你有早起的习惯啊,4点就起床准备编译
fooxx
小狐狸
小狐狸
  • UID36314
  • 注册日期2011-05-21
  • 最后登录2013-09-17
  • 发帖数68
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
196楼#
发布于:2011-12-27 13:45
Lawliet老大,有时间的话能不能再编译一版9.01啊
最近换了一个罗技的鼠标,发现贴吧滚轮的中键也不能用,好不爽
希望您能打上中键那个补丁。。。。谢谢
Lawliet
火狐狸
火狐狸
  • UID34414
  • 注册日期2010-11-03
  • 最后登录2017-04-02
  • 发帖数201
  • 经验13枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 社区居民
  • 忠实会员
197楼#
发布于:2011-12-27 13:45
fooxx:Lawliet老大,有时间的话能不能再编译一版9.01啊
最近换了一个罗技的鼠标,发现贴吧滚轮的中键也不能用,好不爽
希望您能打上中键那个补丁。。。。谢谢
回到原帖

為求速度我先編一個沒有PGO的給你
麻煩你幫我測試一下中鍵能否作用
我的滑鼠只有滾輪沒有中鍵,所以我自己是無法測試的
如果可以的話我就照原本的方法幫9.0.1打補丁然後進行PGO編譯

https://skydrive.live.com/?cid=7658A515 ... A74CBF!466
dongyuanxun
非常火狐
非常火狐
  • UID28632
  • 注册日期2009-04-19
  • 最后登录2013-02-14
  • 发帖数898
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
198楼#
发布于:2011-12-27 13:45

哦,我觉得firefox大量用到的是逻辑运算和整数运算,用到simd的基本就是libjpeg吧
具体我也不太懂,就是理论上的推测

推测错了……

你说的这个是手写SIMD代码,手写的好处是效率高但可读性差,除了jpeg里,js引擎/cario/gfx周边都有很多手写的

我说的是编译器的自动向量化,就是加入/arch:SSE2后,编译器自动干了些什么

编译器自动向量化可以把循环/矩阵赋值等等(越说越多)直接转化为SSE2/SSE3代码,来简单的提升性能。当然编译器不是那么智能的,不能判断所有的情况,所以需要稳定时使用手写SIMD汇编代码,这样就和编译器优化水平脱钩了,但要求对SIMD汇编相当的了解。
minghegy
火狐狸
火狐狸
  • UID37982
  • 注册日期2011-12-17
  • 最后登录2014-02-24
  • 发帖数132
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
199楼#
发布于:2011-12-27 13:45
Lawliet
為求速度我先編一個沒有PGO的給你
麻煩你幫我測試一下中鍵能否作用
我的滑鼠只有滾輪沒有中鍵,所以我自己是無法測試的
如果可以的話我就照原本的方法幫9.0.1打補丁然後進行PGO編譯

https://skydrive.live.com/?cid=7658A515 ... A74CBF!466
回到原帖

似乎这个测试版和你的10b4都没有成功打上第二个补丁
用这两个版本在所有网页上都无法用鼠标手势跳到页首页尾,但可以用键盘home end
minghegy
火狐狸
火狐狸
  • UID37982
  • 注册日期2011-12-17
  • 最后登录2014-02-24
  • 发帖数132
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
200楼#
发布于:2011-12-27 13:45

推测错了……

你说的这个是手写SIMD代码,手写的好处是效率高但可读性差,除了jpeg里,js引擎/cario/gfx周边都有很多手写的

我说的是编译器的自动向量化,就是加入/arch:SSE2后,编译器自动干了些什么

编译器自动向量化可以把循环/矩阵赋值等等(越说越多)直接转化为SSE2/SSE3代码,来简单的提升性能。当然编译器不是那么智能的,不能判断所有的情况,所以需要稳定时使用手写SIMD汇编代码,这样就和编译器优化水平脱钩了,但要求对SIMD汇编相当的了解。

现在vc有没有优化报告功能?想看看它把哪些代码转化成SIMD了,我估计很少吧
感觉自动向量化在科学计算和简单的媒体处理里很有用
Lawliet
火狐狸
火狐狸
  • UID34414
  • 注册日期2010-11-03
  • 最后登录2017-04-02
  • 发帖数201
  • 经验13枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 社区居民
  • 忠实会员
201楼#
发布于:2011-12-27 13:45

似乎这个测试版和你的10b4都没有成功打上第二个补丁
用这两个版本在所有网页上都无法用鼠标手势跳到页首页尾,但可以用键盘home end

這個就怪了..第二個補丁是669026吧?
這補丁應該就是解決手勢跟home, end的
我在貼吧,或其他不是貼吧的網站,也無法用手勢操作home與end
手勢是用FireGestures 1.6.7
minghegy
火狐狸
火狐狸
  • UID37982
  • 注册日期2011-12-17
  • 最后登录2014-02-24
  • 发帖数132
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
202楼#
发布于:2011-12-27 13:45
你是手工打的补丁吗?这三个补丁在10.0b4上可以自动打
我把三个都打上了,正在编译无优化版
Lawliet
火狐狸
火狐狸
  • UID34414
  • 注册日期2010-11-03
  • 最后登录2017-04-02
  • 发帖数201
  • 经验13枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 社区居民
  • 忠实会员
203楼#
发布于:2011-12-27 13:45
minghegy:你是手工打的补丁吗?这三个补丁在10.0b4上可以自动打
我把三个都打上了,正在编译无优化版
回到原帖

自動打的,我剛又編譯了一次
只打669026跟692153,手勢home, end依舊失效
9.0.1手工打補丁的就正常
minghegy
火狐狸
火狐狸
  • UID37982
  • 注册日期2011-12-17
  • 最后登录2014-02-24
  • 发帖数132
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
204楼#
发布于:2011-12-27 13:45
你编译的真快

这个bug(https://bugzilla.mozilla.org/show_bug.cgi?id=669026,第二个),reopen了一次。看他们的意思,打算发布一个9.0.2

目测可能和10.0里的这个patch有关:https://bugzilla.mozilla.org/show_bug.cgi?id=696020

如果方便的话,手工把10.0里的696020 revert一下试试

注:好像得把bug 696020, bug 689564 and bug 659350一起revert,算了别试了,太麻烦
dongyuanxun
非常火狐
非常火狐
  • UID28632
  • 注册日期2009-04-19
  • 最后登录2013-02-14
  • 发帖数898
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
205楼#
发布于:2011-12-27 13:45
不知道
你可以cl /help  看看有无相关的report开关

gcc和icc我就知道是啥

常用结构如无依赖循环,很容易被SIMD化,而只要是GUI就摆脱不了循环

ps:你想加速编译的话,可以使用pymake,这样就能多核编译了,设置的N推荐为cpu核心数的1.5-2倍(向小值取整),如果你之外不干其他的事情,推荐2倍,平常1.5倍即可。虽然pymake的bug也不少,但用vc编译基本上满足需求了。
Lawliet
火狐狸
火狐狸
  • UID34414
  • 注册日期2010-11-03
  • 最后登录2017-04-02
  • 发帖数201
  • 经验13枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 社区居民
  • 忠实会员
206楼#
发布于:2011-12-27 13:45
pymake跟VC一樣在link的時候,都只能是單線程
實際上能節省的時間相當有限,我考慮過年後買i5 2600來加速編譯時間
dongyuanxun
非常火狐
非常火狐
  • UID28632
  • 注册日期2009-04-19
  • 最后登录2013-02-14
  • 发帖数898
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
207楼#
发布于:2011-12-27 13:45
现在的链接器就没有多线程的,主要是考虑循环依赖问题

节省的时间还是可以的。当然相对于pgo link的时间寥寥无几,但是对于整合预编译阶段,可以提高数倍速度(因为几乎无链接时间)。
minghegy
火狐狸
火狐狸
  • UID37982
  • 注册日期2011-12-17
  • 最后登录2014-02-24
  • 发帖数132
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
208楼#
发布于:2011-12-27 13:45
dongyuanxun:不知道
你可以cl /help  看看有无相关的report开关

gcc和icc我就知道是啥

常用结构如无依赖循环,很容易被SIMD化,而只要是GUI就摆脱不了循环

ps:你想加速编译的话,可以使用pymake,这样就能多核编译了,设置的N推荐为cpu核心数的1.5-2倍(向小值取整),如果你之外不干其他的事情,推荐2倍,平常1.5倍即可。虽然pymake的bug也不少,但用vc编译基本上满足需求了。
回到原帖

谢谢,我用普通的就行了,反正也不经常编译
minghegy
火狐狸
火狐狸
  • UID37982
  • 注册日期2011-12-17
  • 最后登录2014-02-24
  • 发帖数132
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
209楼#
发布于:2011-12-27 13:45
Lawliet:pymake跟VC一樣在link的時候,都只能是單線程
實際上能節省的時間相當有限,我考慮過年後買i5 2600來加速編譯時間
回到原帖

如果10的正式版依然没有解决,可以取舍一下
打第二个补丁:所有页面无法使用手势home end,可以正常使用键盘home end
不打第二个补丁:仅在有contenteditable的页面无法使用手势、键盘home end,在其它页面正常
可以先不打第二个补丁,让bug的影响范围到最小
游客

返回顶部