Archive

Archive for June, 2015

[JS-internals] Jit DevTools 0.0.1

June 18th, 2015 No comments

转发,我一直期待(但是自己没有做)的工具之一:

Nicolas B. Pierron via lists.mozilla.org

Hello everybody,

I am please to do an early announce a new tool named Jit DevTools.

This new tool is an addon which mostly target Jit developers.  It uses the recently added Debugger.onIonCompilation hook to display the latest MIR [1] and LIR graphs within the dev tools.

To use this tool, go to a web page, and open the Jit DevTools panel, then wait until a function got compiled.

Once a function is compiled, you can select a compiled script, which will display the MIR graph of the compilation.  If you need to, you can also have a look at the LIR graph.  The output is similar to the one rendered with iongraph [5].

By selecting any inlined script, the background of the block titles will change color, if the block correspond to the inlined instance.  This feature is quite useful to identify how a function plays in a compiled script.

You might find this tool quite handy to use for the following use cases:
– Investigating DOM optimization.
– Investigating jsperf issues.
– Comparing function implementations, and impacts on the generated code.

This addon works on optimized builds, and even with parallel compilation enabled.

You can download [2] this early version from http://people.mozilla.org/~npierron/jit-dev-tools/ , or build it your-self by using the sources [3] with jpm tool [4].

Have fun, and enjoy.

[1] http://people.mozilla.org/~npierron/jit-dev-tools/jit-dev-tools-0.0.1.png
[2] http://people.mozilla.org/~npierron/jit-dev-tools/jit-dev-tools-0.0.1.xpi
[3] https://github.com/nbp/jit-dev-tools/
[4] https://developer.mozilla.org/en-US/Add-ons/SDK/Tools/jpm
[5] https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey/Hacking_Tips#Using_IonMonkey_spew_%28JS_shell%29

WebAssembly

June 18th, 2015 No comments

https://blog.mozilla.org/luke/2015/06/17/webassembly/

https://brendaneich.com/2015/06/from-asm-js-to-webassembly/

https://github.com/WebAssembly/design

额,速度太快了,还在啃 asm.js 的我表示跟不上节奏了……

龙芯CPU的JavaScript性能

June 14th, 2015 No comments

这是4月份的新闻的评论,一直没有时间来写,拖了两个月了。

四月份的时候,类似“龙芯性能不到iPhone6 A8性能的1/10?”的新闻[1][2][3]又一次把龙芯拉出来被人吐槽。其中出现 1/10 对比的一项是 SunSpider 测试,SPEC CINT2000 的测试差异没有那么大。另外没有贴出来 SPEC CFP2000 的分数对比。

作为一度天天跑SPEC和SunSpider等Benchmark的人来说,新闻中的测试报告是没有可信度的。性能测评需要有一套完整的流程,才能够确认自己获得的测评分数是正确的。不同的环境设定、软硬件组合、是否联网[7]等都会影响到SPEC的测评分数。

[4]中有人提供了反面的数据,表达另一种可能性。

就我个人的经验而言,龙芯的 SunSpider 性能差异更多的应该是在软件层面。现代的浏览器都通过(多个层级的)JIT来对JavaScript进行加速,开启和关闭JIT的SunSpider、Kraken、Octane 跑分差异可能会相差20~30倍。使用 iPhone 的同学可以在 Safari 和微信自带的浏览器中测试对比下速度差异(iOS 中只有 Safari 可以开 JIT)。三大开源浏览器JIT引擎对于龙芯采用的MIPS后端的支持都还很初级,甚至还不能正常使用。龙芯官方[6]和开源爱好者[5]的数据也印证了龙芯CPU跑 JavaScript 的尴尬。软件层面的缺失,或者往大了说,生态环境的问题,也是龙芯(MIPS架构)需要面对的一个大问题。

[1] http://www.leiphone.com/news/201504/aCIGktK8BJgon9BV.html

[2] http://tech.163.com/15/0406/14/AMHCJ04K000915BD.html

[3] http://tech.sina.com.cn/zl/post/detail/it/2015-04-09/pid_8476155.htm

[4] http://tieba.baidu.com/p/3684400301

[5] http://www.lingcc.com/2010/06/28/10983/

[6] http://www.loongson.cn/dev/ftp/doc/07FAQ/%E9%BE%99%E8%8A%AFFAQ_V0.8.pdf

[7] 我有一次跑SPEC的时候没有拔掉网线,结果内网MDNS广播风暴导致性能掉了非常多,内核处理TCP/IP需要跟Benchmark抢占资源。

Linux下的PDF高亮及标注工具

June 14th, 2015 No comments

这么多年过去了,还是没有一款Linux下的PDF工具能够做到跟 Adobe Reader 类似的高亮和标注。Okular 是个例外,可以标注,但是备注信息不是保存在PDF里面的,无法交换。

龙芯3A2000(GS464E)

June 13th, 2015 No comments

看了《中国科学》上的论文(PDF[1]),相对于3A确实有了很大的进步,祝贺。愿意跟 Ivy 系列的CPU对比,也蛮有诚意的。
不过同主频对比这个,容易被不仔细看图表的人误解,被夸大宣传[2, 3, 4, 5]了一阵之后,可能免不了会被喷。

在阅读了论文和相关的新闻报道[2, 3, 4, 5]之后,注意到多了一个性能对比图:

GS464E

这个是在原论文中没有的。

什么都有人问的知乎,已经有了不少的评论: http://www.zhihu.com/question/30008964