首先,我并没有得到实际的比较结果,望有兴趣的朋友可以帮助完成这个比较。
benchmarksgame,提供了各种语言的性能比较,但都为linux下的测试,很难比较谷歌与微软的东西。
众所周知,JSV8有优秀的性能,但具体与IE10/11的JS引擎的性能孰高孰低,并没有权威的比较结果。单从浏览器方面的比较,谷歌不计内存使用、不计电源消耗,来提升Chrome的性能。而IE则在更多方面为用户着想——系统的兼容性、低碳环保、易扩展再利用方面都有绝对的优势。我特意分析过Chrome的渲染部分,默认字体均为点阵字体,未进行平滑处理,这将有一定的性能提升,但损失了表现力。而IE会以最佳的效果显示文字。谷歌在取巧!
近期希望大范围应用JavaScript嵌入到程序中,提高扩展性,希望透彻了解JSRT的性能。
benchmarks提供了jsv8的正则表达式测试代码,很有代表性,它的性能超过了所有语言。复制测试代码,实现JSRT测试,但没有提供完整的测试源数据,只找到了一个100KB的源数据。而测试页面的表格中分别是50000,500000,5000000的N值,搞不懂这些数据从何而来。源码里也没有。
我将就用100KB的数据做了测试,得到的测试结果是108812纳秒左右。
benchmarksgame的数据
N | CPU secs | Elapsed secs | Memory KB | Code B | ≈ CPU Load |
---|---|---|---|---|---|
50,000 | 0.05 | 0.05 | ? | 373 | 17% 0% 0% 100% |
500,000 | 0.35 | 0.39 | 264 | 373 | 5% 0% 0% 100% |
5,000,000 | 3.29 | 3.30 | 484,640 | 373 | 0% 1% 1% 100% |
这是benchmarksgame的5000000的测试结果输出:
agggtaaa|tttaccct 356
[cgt]gggtaaa|tttaccc[acg] 1250
a[act]ggtaaa|tttacc[agt]t 4252
ag[act]gtaaa|tttac[agt]ct 2894
agg[act]taaa|ttta[agt]cct 5435
aggg[acg]aaa|ttt[cgt]ccct 1537
agggt[cgt]aa|tt[acg]accct 1431
agggta[cgt]a|t[acg]taccct 1608
agggtaa[cgt]|[acg]ttaccct 2178
50833411
50000000
66800214
下面是我的测试程序输出:
agggtaaa|tttaccct 0
[cgt]gggtaaa|tttaccc[acg] 3
a[act]ggtaaa|tttacc[agt]t 9
ag[act]gtaaa|tttac[agt]ct 8
agg[act]taaa|ttta[agt]cct 10
aggg[acg]aaa|ttt[cgt]ccct 3
agggt[cgt]aa|tt[acg]accct 4
agggta[cgt]a|t[acg]taccct 3
agggtaa[cgt]|[acg]ttaccct 5
101745
100000
133640
感觉我的这100K数据有点像benchmarksgame 50000那个数据,又觉得不是。
还望高手出招,测试,或给出建议。