缘起:写这篇文章因为报名参加了龙芯开源软件大赛,项目是《Webkit-龙》,把webkit移植到龙芯N32系统上,起初是想做chromium的移植。但在起步的过程中,发现一是Google的V8引擎,对mips的支持基本处于不可用状态,而且chromium为了追求性能,使用的方式太过灵巧,如Native client(Google的野心–Native Client+LLVM),凭自己的一己之力,靠业余时间,很难完成,只好先做webkit了。

Squirrelfish 是Webkit的Javascript引擎。针对龙芯平台(MIPS)已经有了JIT支持,但仅仅对O32系统才有,本博曾经介绍过相关内容(WebKit和Firefox的JavaScript性能对比)。

切入正题,N32系统下,龙芯平台上,Sunspider性能测试结果如下:

============================================
RESULTS (means and 95% confidence intervals)
--------------------------------------------
Total: 9125.6ms +/- 0.1%
--------------------------------------------
3d: 1058.6ms +/- 0.2%
cube: 326.9ms +/- 0.1%
morph: 380.9ms +/- 0.6%
raytrace: 350.8ms +/- 0.1%
access: 1441.2ms +/- 0.1%
binary-trees: 108.4ms +/- 0.3%
fannkuch: 829.2ms +/- 0.2%
nbody: 249.0ms +/- 0.0%
nsieve: 254.6ms +/- 0.4%
bitops: 1088.6ms +/- 0.2%
3bit-bits-in-byte: 196.2ms +/- 0.3%
bits-in-byte: 250.1ms +/- 0.2%
bitwise-and: 224.9ms +/- 0.3%
nsieve-bits: 417.4ms +/- 0.3%
controlflow: 138.2ms +/- 0.2%
recursive: 138.2ms +/- 0.2%
crypto: 621.5ms +/- 0.1%
aes: 323.0ms +/- 0.1%
md5: 145.3ms +/- 0.2%
sha1: 153.2ms +/- 0.3%
date: 523.6ms +/- 0.6%
format-tofte: 302.4ms +/- 0.6%
format-xparb: 221.2ms +/- 1.3%
math: 931.3ms +/- 0.1%
cordic: 356.0ms +/- 0.2%
partial-sums: 324.5ms +/- 0.1%
spectral-norm: 250.8ms +/- 0.2%
regexp: 1681.6ms +/- 0.1%
dna: 1681.6ms +/- 0.1%
string: 1641.0ms +/- 0.2%
base64: 232.9ms +/- 0.2%
fasta: 261.9ms +/- 0.2%
tagcloud: 394.9ms +/- 0.2%
unpack-code: 525.2ms +/- 0.2%
validate-input: 226.1ms +/- 0.7%

与O32系统的性能相比:9125ms vs 6355ms,慢了一半。一个原因是N32现在没有JIT支持。

正确性方面,使用webkit的 Javascript测试集测试。有7个例子出错:

ecma/Date/15.9.5.14.js
ecma/Date/15.9.5.28-1.js
ecma/Date/15.9.5.29-1.js
ecma/Date/15.9.5.31-1.js
ecma/Date/15.9.5.34-1.js
ecma/Date/15.9.5.35-1.js
ecma/Math/15.8.2.17.js

WebKit-龙项目方面:

  • 主要优化JavaScript引擎,
  • 现在WebKit虽然能编译,但运行还会报错:

Can't find built framework at "/root/WebKit/WebKitBuild/Release/lib/libQtWebKit.so".

  • 这个项目刚刚启动,欢迎加入

相关文章:

  18 Responses to “龙芯N32系统上的Squirrelfish性能”

  1. 这些项目太有意义了,目前这些软件里针对龙芯或MIPS的优化几乎为0的,而x86的优化一般是最好的。

    我很想做这些优化,可是能力有限。。。

  2. [...] 自从龙芯N32系统上的Squirrelfish性能发布后,得到了很多朋友的支持,汇报最新进展: [...]

  3. Can’t find built framework at “/root/WebKit/WebKitBuild/Release/lib/libQtWebKit.so”.
    这个是因为你编译的时候用了WEBKITOUTPUTDIR,也许你还用了–debug选项,所以运行run-launcher时同样要使用WEBKITOUTPUTDIR和–debug选项。
    iam-zhanglei@163.com

  4. hi, 现在进度如何?我想加入呀。

    • 因为事情比较多,现在进展缓慢。我会近期做个项目介绍页面出来。敬请关注:)

  5. 我想加入,怎么加入。

  6. 呵呵,加油

  7. 你还是有业余时间的阿?期待找个项目合作一把

    • 呵呵,其实都是挤出来的:)
      想加入的话,就马上行动,不然,就会慢慢就会忘掉了

      • 这半个月忙着出版本,这个需要什么基础,我先看看?

        • 呵呵,应该会些C++就行。我会尽量坚持每周发个进度报告:)
          想加入的话,就尽快:)

  8. Date那些O32也能过么?Firefox sunspider有个类似问题是必须把时区设成美国才能过某些例子。

    • 顾问这名号不是白来的:)
      把时区改成 Los_Angeles, 问题解决。现在还有一个bug
      ecma/Math/15.8.2.17.js

  9. 我可以做顾问,哈哈

 Leave a Reply

(required)

(required)

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

   
2009-2011© 编译点滴 Suffusion theme by Sayontan Sinha

无觅相关文章插件,快速提升流量