POPPUR爱换

 找回密码
 注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

搜索
123
返回列表 发新帖
楼主: largewc
打印 上一主题 下一主题

反编译xcode5的结果来看a7性能提升的主要因素

  [复制链接]
41#
 楼主| 发表于 2013-10-21 11:58 | 只看该作者
本帖最后由 largewc 于 2013-10-21 11:59 编辑
acqwer 发表于 2013-10-21 11:52
不是支持就行啊
http://stackoverflow.com/questio ... al-c-11-0-2012-benc ...


我怎么看大部分都是ms表现的更好啊,少部分多指令的乘除表现实在太差,不过测试的是amd的u,可能有一些差异,ms的优化应该还是基于intel的为主。


非simd,ms表现更好,可能也是这样吧,ms对simd优化不够,但是常规x86优化,vc比gcc好太多了。
回复 支持 反对

使用道具 举报

42#
 楼主| 发表于 2013-10-21 12:01 | 只看该作者
acqwer 发表于 2013-10-21 11:33
we use Xcode 5 on iOS and OS X, Clang 3.3 on Linux, Visual Studio 2012 on Windows, and GCC 4.8 o ...

大致看了一下,geekbench确定不支持avx,这样的话,haswell能跑到a7一样的分数,非常可怕了。
回复 支持 反对

使用道具 举报

43#
发表于 2013-10-21 12:04 | 只看该作者
largewc 发表于 2013-10-21 11:58
我怎么看大部分都是ms表现的更好啊,少部分多指令的乘除表现实在太差,不过测试的是amd的u,可能有一些 ...

后面有总和的时间,最好的情况是相当,最差差了几倍。纯X86指令的确是MS做得好,但是新指令的支持被开源社区甩了好大一截。

至于Intel和AMD差异,至少在geekbench的表现中基本符合两家CPU的性能,VS并没有表现出更优化Intel出来。
回复 支持 反对

使用道具 举报

44#
 楼主| 发表于 2013-10-21 12:10 | 只看该作者
acqwer 发表于 2013-10-21 12:04
后面有总和的时间,最好的情况是相当,最差差了几倍。纯X86指令的确是MS做得好,但是新指令的支持被开源社 ...

我的观点是,simd除了特定情况,特别是那种极端测试,影响性能的大部分simd指令都是自己手工写的,不可能是编译器自动编译的,这个不可靠。

ms的观点是sse编译器优化带来的性能提升不明显,msdn之前有一个文档也是这么说的。

我们自己的工程也是如此,真正耗能的部分都是手工写的,gcc默认编译的也差距甚远。
回复 支持 反对

使用道具 举报

45#
 楼主| 发表于 2013-10-21 12:19 | 只看该作者
本帖最后由 largewc 于 2013-10-21 12:22 编辑
acqwer 发表于 2013-10-21 12:04
后面有总和的时间,最好的情况是相当,最差差了几倍。纯X86指令的确是MS做得好,但是新指令的支持被开源社 ...


而且我觉得可能存在别的因素导致的,不一定是vc优化的不到位,没有分析代码不能说明问题。


编译器我还是这个观点,vc比gcc效率高多了。
回复 支持 反对

使用道具 举报

46#
发表于 2013-10-21 14:33 | 只看该作者
本帖最后由 acqwer 于 2013-10-21 14:34 编辑
largewc 发表于 2013-10-21 12:10
我的观点是,simd除了特定情况,特别是那种极端测试,影响性能的大部分simd指令都是自己手工写的,不可能 ...


如果跑测试软件,编译器差别非常大,跑Spec的时候,ICC在Intel平台上面比GCC平均强了50%,跑普通的非大量运算应用,本来SIMD用的就少,提升当然有限。

微软现在在软件优化上面比开源平台差了好多,编译器这种不好比,就看同样靠优化的浏览器,跑JS除了作弊的日蜘蛛平均能输30%。别说MS觉得JS不重要,微软自己的官方文档还拿日蜘蛛来对比。
回复 支持 反对

使用道具 举报

47#
 楼主| 发表于 2013-10-21 14:38 | 只看该作者
本帖最后由 largewc 于 2013-10-21 14:38 编辑
acqwer 发表于 2013-10-21 14:33
如果跑测试软件,编译器差别非常大,跑Spec的时候,ICC在Intel平台上面比GCC平均强了50%,跑普通的非大量 ...


算不上作弊吧,js微软确实厉害,毕竟微软在做编译器的,谷歌差的更远。

主流浏览器性能不行主要还是微软在html5上支持一直不给力,这是实情,微软在内存使用上也比chrome要谨慎一些。微软只是优化了局部的html5性能,但是整体还是比较差的。

按照以前我的经验来看,msvc比gcc大概快30%左右,icc比msvc还能快30%附近,总体icc比gcc能快50%-70%。

simd上可能ms确实不太在意,也许是实情,过一段时间找找资料看看吧。


ie11我认为已经可以完全取代chrome了,我用了一段时间,速度跟chrome基本看不出差异,而内存占用,ie比chrome好太多。
回复 支持 反对

使用道具 举报

48#
发表于 2013-10-21 14:42 | 只看该作者
本帖最后由 acqwer 于 2013-10-21 14:43 编辑
largewc 发表于 2013-10-21 14:38
算不上作弊吧,js微软确实厉害,毕竟微软在做编译器的,谷歌差的更远。

主流浏览器性能不行主要还是 ...


http://we.poppur.com/thread-2162828-1-1.html

看这贴,IE11只有sunspider能赢,对于测试软件来说,无用代码删除就是作弊行为,测试首先要保证对比平台的运算量一样,IE就做个检测发现没有全局变量就跳过循环在测试中怎么看都是作弊行为。

IE真正提升很大的是GPU加速,毕竟核心API在微软手上,硬件厂商的支持也更好,JS还是在垫底。
回复 支持 反对

使用道具 举报

49#
 楼主| 发表于 2013-10-21 14:45 | 只看该作者
acqwer 发表于 2013-10-21 14:42
http://we.poppur.com/thread-2162828-1-1.html

看这贴,IE11只有sunspider能赢,对于测试软件来说,无 ...

js跟c#或者java虚拟机应该类似的jit方案,c#就是比java快,难道是作弊?ms在这一点确实比其他家强,这是ms过去的优势而已。

找个html5兼容性测试,ie更差,因为ie确实对html支持不好,浏览器测试好多专门是跑html5的。
回复 支持 反对

使用道具 举报

50#
发表于 2013-10-21 14:53 | 只看该作者
本帖最后由 acqwer 于 2013-10-21 14:54 编辑
largewc 发表于 2013-10-21 14:45
js跟c#或者java虚拟机应该类似的jit方案,c#就是比java快,难道是作弊?ms在这一点确实比其他家强,这是m ...


kraken和octane都是纯JS测试,当时被质疑的时候,有人测试过调整了sunspider的代码,IE的成绩就掉了一大截。
Rob Sayre在对Firefox 4和其它浏览器进行基准测试时,注意到IE9在SunSpider的math-cordic测试速度是其它浏览器的十倍。在测试中,Chrome和Opera的得分在10ms左右,但IE9只需1ms。Sayre改动了测试代码中的两个影响不大的变量,结果IE9完成测试所需时间是原来的20倍(20ms),而Opera和Chrome在新测试中速度保持不变。

微软给出的解释就是IE增加了无用代码删除的功能,这应该是变相承认作弊了吧。
回复 支持 反对

使用道具 举报

51#
 楼主| 发表于 2013-10-21 15:02 | 只看该作者
acqwer 发表于 2013-10-21 14:53
kraken和octane都是纯JS测试,当时被质疑的时候,有人测试过调整了sunspider的代码,IE的成绩就掉了一大 ...

这个应该只是编译器里面的一个优化而已,取消无用变量。

可能会带来ie的加载速度变慢,sunspider是加载结束后,一次性测试,我怀疑其他测试可能是包含下载和加载速度了,ie js编译优化深度更深可能会带来加载更慢的问题。
回复 支持 反对

使用道具 举报

52#
 楼主| 发表于 2013-10-21 15:24 | 只看该作者
acqwer 发表于 2013-10-21 14:53
kraken和octane都是纯JS测试,当时被质疑的时候,有人测试过调整了sunspider的代码,IE的成绩就掉了一大 ...

sunspider确实不靠谱,最简单一个,你开启测试以后,马上把窗口最小化,成绩可以提升10%。

sunspider的测试不能更好测试浏览器性能,这个确实,平均测试来看,ie应该还是不如chrome。

不过应该还是ie本身的问题。
回复 支持 反对

使用道具 举报

53#
发表于 2013-10-21 15:36 | 只看该作者
largewc 发表于 2013-10-21 15:24
sunspider确实不靠谱,最简单一个,你开启测试以后,马上把窗口最小化,成绩可以提升10%。

sunspider的 ...

无用代码删除的功能,只要不影响最终结果。
而且对其他地方使用类似代码是同样有效,而非遇到xxx.exe就xxx之类,那么这只能说是优化。
sunspider踩雷了,只能说其测试样例不全面,不能反应更普遍情况。
回复 支持 反对

使用道具 举报

54#
 楼主| 发表于 2013-10-21 15:37 | 只看该作者
slice 发表于 2013-10-21 15:36
无用代码删除的功能,只要不影响最终结果。
而且对其他地方使用类似代码是同样有效,而非遇到xxx.exe就x ...

我估计苹果的safiri跟ie是同样的优化,看起来苹果iphone5s的google octane的成绩也非常差劲,应该陷入了跟ie一样的麻烦。

现在ie已经好用了,这些分数我觉得无关紧要,只算体验,ie11已经很好用了。
回复 支持 反对

使用道具 举报

55#
 楼主| 发表于 2013-10-21 15:38 | 只看该作者
slice 发表于 2013-10-21 15:36
无用代码删除的功能,只要不影响最终结果。
而且对其他地方使用类似代码是同样有效,而非遇到xxx.exe就x ...

只有浏览器跑分,我觉得只有同平台才有意义,跨平台比浏览器本身就不太靠谱。
回复 支持 反对

使用道具 举报

56#
发表于 2013-10-21 16:46 | 只看该作者
largewc 发表于 2013-10-21 10:27
arm64是双发射的neon,这个可以理解了,这样拆分是为了双发射neon的作用。

现在可以理解a7的性能所谓的 ...

这里要小心别被ARM骗了。A15上大部分NEON也是双发射的,但是要注意发射单元是发射微指令。实际上在A15上大部分四向量NEON指令是要被解码成两条二向量NEON微指令的。所以A15上所谓NEON双发射不过只是每周期一条四向量NEON指令罢了。

苹果A7上NEON微指令是什么样子这个还不清楚,需要做一些micro benchmark才能确定。
回复 支持 反对

使用道具 举报

57#
 楼主| 发表于 2013-10-21 16:50 | 只看该作者
开普勒 发表于 2013-10-21 16:46
这里要小心别被ARM骗了。A15上大部分NEON也是双发射的,但是要注意发射单元是发射微指令。实际上在A15上大 ...

嗯,但是从xcode编译结果来看,不管是如何,反正a7比a6应该是双发射neon的提升。

也许a6本身还是单发射的neon吧,具体只有苹果知道了。
回复 支持 反对

使用道具 举报

potomac 该用户已被删除
58#
发表于 2013-10-21 18:48 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

广告投放或合作|网站地图|处罚通告|

GMT+8, 2025-1-23 13:55

Powered by Discuz! X3.4

© 2001-2017 POPPUR.

快速回复 返回顶部 返回列表