Archive

Posts Tagged ‘benchmark’

Firefox for Android 的 JavaScript Profiling 方法

April 19th, 2013 No comments

最近需要对手机版浏览器的JavaScript执行效率做性能分析。浏览器选择 Firefox for Android,JavaScript 程序选择 SunSpider、Octane和kraken测试集。

首先要做的就是获得性能测评数据。基本上参照Mozilla的教程就可以做到,但是有几个地方值得记录一下:

  1. 教程中说 Profiler 需要查找“arm-eabi-addr2line”工具,当前版本的Android NDK没有这个文件。找到一个“arm-linux-androideabi-addr2line”,建立一个符号链接,成功骗过了 Profiler。
  2. ADB在Ubuntu下需要sudo启动否则连接不上USB设备。
  3. 手机需要在“开发人员选项”中开启USB调试功能。
  4. Profiler 要求 PC 端开启“devtools.debugger.remote-enabled”选项。(我在手机上手工输入了这个字符串三次,囧)
  5. 开启 Profiling 之后跑 benchmark,有时候会导致 Firefox for Android 和 PC 上的 Profiler 同时假死,停止 Profiling 之后 Profiler 读取数据也可能会假死。多尝试几次总会有成功跑完的时候。(这是个需要解决的问题)
  6. 建议将自动待机(锁屏)时间延长到10分钟以上,在插电源时不关闭屏幕。
  7. 如果不想自己编译,可以下载 Firefox Nightly 安装测试。Release 通道的 Firefox 没有这个功能。

PS:发现 Nightly 经常性的出现输入URL之后网页显示不出来,标签页选择的时候能够看到略缩图,很奇怪的一个bug——一定是我打开的方式不对 🙂

Hello Firefox 18: Benchmark Results, Comparing with Firefox 17.0.1 and Chromium 18

January 10th, 2013 No comments

Firefox 18 发布了,新闻说启用了IonMonkey JIT的SpiderMonkey性能提升了25%(Kraken)。今天测试了一下,发现在 Linux上,Firefox 18 比 Firefox 17 的提升,甚至可以达到 47%,跟 Chromium 的速度旗鼓相当。以下是用我的台式机跑出来的 Kraken、V8、SunSpider、Octane 四个Benchmark的结果。

Kraken Benchmark

Firefox 18

详细结果

Firefox 17

详细结果

Firefox 18 vs. Firefox 17

(为了防止折行,将“FROM”和“TO”列隐去了,可以参看上面的结果):

从结果来看引入了IonMonkey之后加速了将近47%。但是同时,个别程序性能反而下降了。

Chromium

作为对比,一并测试了一下 Chromium 的得分,版本号 18.0.1025.168(详细结果):

 

总体上而言还是 Chromium 快一点,但是得分很接近,在一些分项上 Firefox 18.0 速度比Chromium更快。

Firefox 18.0 vs Chromium

 

Sunspider 0.91 Benchmark

SunSpider 0.9.1 的测试结果,有点意外的是 Firefox 17.0.1 最快,其次是Firefox 18.0,Chromium最慢。嗯,一定是我打开的方式不对。

测试地址:http://www.webkit.org/perf/sunspider-0.9.1/sunspider-0.9.1/driver.html

Firefox 18.0

详细结果

 

Chromium

详细结果

Firefox 17.0.1

详细结果

V8-v7 Benchmark

V8的测试结果,Firefox 18.0 > Chromium > Firefox 17.0.1

测试地址:http://v8.googlecode.com/svn/data/benchmarks/v7/run.html

Firefox 18.0

Score: 7671

Richards: 8811
DeltaBlue: 10991
Crypto: 11226
RayTrace: 6761
EarleyBoyer: 11968
RegExp: 904
Splay: 9461
NavierStokes: 15932

Chromium

Score: 7298

Richards: 10584
DeltaBlue: 14030
Crypto: 13852
RayTrace: 8836
EarleyBoyer: 19236
RegExp: 2368
Splay: 3268
NavierStokes: 2974

Firefox 17.0.1

Score: 5695

Richards: 6499
DeltaBlue: 7061
Crypto: 9931
RayTrace: 3211
EarleyBoyer: 7682
RegExp: 1447
Splay: 7603
NavierStokes: 8945

Octane v1 Benchmark

最后是 Octane 的测试结果。Octane Benchmark 的结果是一个分数,得分越高越好。总体得分来看,Chromium > Firefox 18.0 > Firefox 17.0.1。

关于这个Benchmark,Mozilla的开发人员Nicholas Nethercote并不认可,发表了一篇博客,认为测试程序的选取不具有代表性,过度的考虑了Chrome Apps。

测试地址:http://octane-benchmark.googlecode.com/svn/latest/index.html

Firefox 18:

Octane Score: 6754
Richards 8977
Deltablue 9984
Crypto 9910
Raytrace 6326
EarleyBoyer 11472
Regexp 634
Splay 9192
NavierStokes 15768
pdf.js 3452
Mandreel 6184
GB Emulator 8755
CodeLoad 7924
Box2DWeb 6940

Firefox 17:

Octane Score: 5618

Richards 6365
Deltablue 7425
Crypto 9962
Raytrace 3217
EarleyBoyer 7217
Regexp 1410
Splay 7896
NavierStokes 8877
pdf.js 4050
Mandreel 5447
GB Emulator 5096
CodeLoad 8622
Box2DWeb 5306

Chromium 18.0

Octane Score: 7735

Richards 8804
Deltablue 14116
Crypto 13961
Raytrace 9028
EarleyBoyer 19073
Regexp 2419
Splay 3726
NavierStokes 3112
pdf.js 10526
Mandreel 7992
GB Emulator 11014
CodeLoad 8310
Box2DWeb 5498

说明

  • 测试的机器的配置是 Intel(R) Core(TM)2 Quad CPU Q9400 @ 2.66GHz, 8G DDR2, Ubuntu 10.04 x86_64。
  • 我机器上的 Chromium 的版本号似乎比 Chrome 的小,不确定是不是最新的版本(用的 stable release channel),对于测试结果有影响。
  • 发现默认情况下Firefox 17和Firefox 18不会同时运行。Firefox在启动的时候会检查一下是否已经有了Firefox进程,如果有的话就不开新的进程了。这使得在测试的时候必须先关闭所有的Firefox浏览器窗口才能够换一个版本。为了避免乌龙我在每次测试之前,通过“About Firefox”菜单确认了版本。
  • 这个测试结果仅限于Linux,在Windows环境下或许是完全另外的一个结果。相比而言各个浏览器对于Linux环境下的性能优化都不是很上心,小小失落。

SunSpider 0.9.1 Test

September 26th, 2012 No comments

在线测试了一下笔记本上Windows环境下三个浏览器的 SunSpider 0.9.1 跑分,竟然是 Chrome 落后。不过绝对的分值看起来都差不多。具体的数据如下:

Browser Score(ms)
Firefox 15.0.1 400.2ms +/- 2.1%
IE 9.0.10 408.3ms +/- 2.0%
Chrome 22.0.1229.79 426.9ms +/- 7.8%
Firefox 14.0.1 471.9ms +/- 2.7%

实验用的机器是老机器,所以跑出来的时间都比较长。

如果你有兴趣,可以点击这里测试一下你的浏览器得分

MiBench Benchmark 简介

November 18th, 2010 No comments

MiBench Benchmark 是 Michigan 大学电子工程与计算科学学院推出的一个免费的嵌入式基准测试集合。2001年推出之后得到了广泛的使用,截止2010年11月被引用了1234次(Google Scholar 数据ACM portal 的数据显示MiBench论文被引用了325次)。

MiBench Benchmark 总共包含35个嵌入式程序,分成汽车及工业制造、消费电子、办公自动化、网络、安全、通信六个子类。所有程序都使用 ANSI C 编写,这使得 MiBench Benchmark 也具有了很好的可移植性。以下是 MiBench Benchmark 包含的程序介绍:

  • 汽车及工业制造

  1. basicmath:一些简单的数学计算测试;
  2. bitcount:统计一个整数数组包含的bit中1的个数;
  3. qsort:字符串快速排序程序;
  4. susan:图像识别工具包。
  • 消费电子

  1. jpeg:JPEG编解码程序;
  2. lame:MP3转换程序;
  3. mad:MPEG音频解码器;
  4. tiff2bw:将TIFF格式转换成黑白图的格式;
  5. tiff2rgba:将TIFF格式转换成RGBA的格式;
  6. tiffdither:TIFF图像抖动工具,降低分辨率,减少图片体积。
  7. tiffmedian:TIFF图像调色板调整工具;
  8. typeset:基于HTML的排版工具。
  • 办公自动化

  1. ghostscript:排版工具,CLI版本;
  2. ispell:快速拼写检查工具;
  3. rsynth:text to speech 工具;
  4. sphinx:语音解码工具;
  5. stringsearch:字符串查找工具。
  • 网络

  1. dijkstra:Dijkstra算法实现;
  2. patricia:Patricia Trie,用于叶子稀疏的树结构。
  • 安全

  1. blowfish enc./dec.:blowfish加密/解密算法;
  2. pgp sign/verify:pgp 签名/检验算法;
  3. rijndael enc./dec.:rijndael加密/解密算法;
  4. sha:SHA散列算法。
  • 通信

  1. CRC32:CRC32计算工具;
  2. FFT/IFFT:快速傅立叶变换及其逆变换;
  3. ADPCM enc./dec.:Adaptive Differential Pulse Code Modulation 编解码工具;
  4. GSM enc./dec.:GSM加密/解密算法。

参考资料: