やっとnashorn jdk9-es b27でsun-spiderが終わったザマスよ! ぼっちゃん!

============================================
RESULTS (means and 95% confidence intervals)
--------------------------------------------
Total: 16378.0ms +- 2.0%
--------------------------------------------
3d: 4858.4ms +- 5.3%
cube: 1615.7ms +- 5.3%
morph: 450.4ms +- 19.2%
raytrace: 2792.3ms +- 5.5%
access: 1303.7ms +- 15.1%
binary-trees: 318.7ms +- 71.4%
fannkuch: 468.0ms +- 11.4%
nbody: 410.0ms +- 6.4%
nsieve: 107.0ms +- 5.0%
bitops: 240.7ms +- 10.3%
3bit-bits-in-byte: 49.3ms +- 20.3%
bits-in-byte: 28.9ms +- 19.6%
bitwise-and: 93.4ms +- 21.7%
nsieve-bits: 69.1ms +- 11.1%
controlflow: 100.1ms +- 11.3%
recursive: 100.1ms +- 11.3%
crypto: 2779.1ms +- 2.6%
aes: 1399.6ms +- 2.5%
md5: 1132.4ms +- 6.0%
sha1: 247.1ms +- 5.2%
date: 3643.6ms +- 6.3%
format-tofte: 3198.0ms +- 7.2%
format-xparb: 445.6ms +- 3.2%
math: 617.4ms +- 3.0%
cordic: 96.0ms +- 10.7%
partial-sums: 399.0ms +- 2.9%
spectral-norm: 122.4ms +- 10.7%
regexp: 1112.0ms +- 1.2%
dna: 1112.0ms +- 1.2%
string: 1722.9ms +- 2.7%
base64: 249.7ms +- 10.7%
fasta: 403.6ms +- 6.1%
tagcloud: 287.4ms +- 10.4%
unpack-code: 579.4ms +- 4.8%
validate-input: 202.7ms +- 5.7%

五分半くらいかかりました。だいたいrhino forkの19倍遅いです。
いまrhino forkを大改変中なのでbenchmarkを走らせられないのが残念ですが過去の記事でも参照してください。
ローカルにコミットすら出来ない状況なのでまだまだ変更に時間がかかりますが速度にあまり影響ない部分なのでおそらく過去の結果と変わらないはずです。

Mozilla Rhino 1.7R5 Release

Mozilla Rhino 1.7R5がリリースされたのでbugfixを追いかける必要があるが……JavaImporterをrewriteしていたらToplevelクラス関連全部書き直す羽目になったのでまだ出来ない。

ついでに任意のToplevelサブクラスをSPIからロードできるようにした。
これはorg.mozilla.javascript.tools.shell.Globalに依存していたのでモジュール化のためにも必要不可欠。これによりGlobal以外のToplevelクラスを簡単に利用できるようになった。

今後のrhino fork

以前からjigsawのためにモジュール化をしたかったのでLCのリライトが済んだらそこら辺から。そして、project valhallaを視野に入れてvalhallaで問題になる部分(プリミティブに特化したCollectionの利用の廃止やspecializeされたとき衝突するシグネチャを持つメソッドの廃止など)に手を加えます。

jdk8 vs jdk9


jdk9-ea-b26




Run 1 out of 10:
Richards: 749
DeltaBlue: 887
Crypto: 1062
RayTrace: 1073
EarleyBoyer: 1392
RegExp: 294
Splay: 676
SplayLatency: 380
NavierStokes: 1282
----
Score (version 9): 776

Run 2 out of 10:
Richards: 923
DeltaBlue: 965
Crypto: 1162
RayTrace: 1083
EarleyBoyer: 1351
RegExp: 299
Splay: 685
SplayLatency: 486
NavierStokes: 1389
----
Score (version 9): 840

Run 3 out of 10:
Richards: 923
DeltaBlue: 965
Crypto: 1141
RayTrace: 1089
EarleyBoyer: 1340
RegExp: 298
Splay: 852
SplayLatency: 470
NavierStokes: 1399
----
Score (version 9): 856

Run 4 out of 10:
Richards: 919
DeltaBlue: 972
Crypto: 1141
RayTrace: 1089
EarleyBoyer: 1339
RegExp: 298
Splay: 950
SplayLatency: 539
NavierStokes: 1359
----
Score (version 9): 877

Run 5 out of 10:
Richards: 919
DeltaBlue: 952
Crypto: 1118
RayTrace: 1054
EarleyBoyer: 1335
RegExp: 297
Splay: 955
SplayLatency: 537
NavierStokes: 1399
----
Score (version 9): 872

Run 6 out of 10:
Richards: 916
DeltaBlue: 959
Crypto: 1141
RayTrace: 1089
EarleyBoyer: 1342
RegExp: 299
Splay: 1688
SplayLatency: 737
NavierStokes: 1409
----
Score (version 9): 971

Run 7 out of 10:
Richards: 919
DeltaBlue: 972
Crypto: 1129
RayTrace: 1084
EarleyBoyer: 1342
RegExp: 298
Splay: 1712
SplayLatency: 738
NavierStokes: 1409
----
Score (version 9): 972

Run 8 out of 10:
Richards: 919
DeltaBlue: 972
Crypto: 1141
RayTrace: 1095
EarleyBoyer: 1363
RegExp: 297
Splay: 1615
SplayLatency: 731
NavierStokes: 1339
----
Score (version 9): 963

Run 9 out of 10:
Richards: 912
DeltaBlue: 965
Crypto: 1126
RayTrace: 1084
EarleyBoyer: 1323
RegExp: 297
Splay: 1712
SplayLatency: 699
NavierStokes: 1409
----
Score (version 9): 963

Run 10 out of 10:
Richards: 923
DeltaBlue: 972
Crypto: 1135
RayTrace: 1089
EarleyBoyer: 1373
RegExp: 301
Splay: 1664
SplayLatency: 776
NavierStokes: 1409
----
Score (version 9): 980


jdk8u20





Run 1 out of 10:
Richards: 898
DeltaBlue: 828
Crypto: 1041
RayTrace: 1062
EarleyBoyer: 1228
RegExp: 274
Splay: 551
SplayLatency: 407
NavierStokes: 1072
----
Score (version 9): 740

Run 2 out of 10:
Richards: 891
DeltaBlue: 919
Crypto: 1071
RayTrace: 1052
EarleyBoyer: 1249
RegExp: 280
Splay: 814
SplayLatency: 465
NavierStokes: 1095
----
Score (version 9): 800

Run 3 out of 10:
Richards: 888
DeltaBlue: 945
Crypto: 1106
RayTrace: 1067
EarleyBoyer: 1265
RegExp: 282
Splay: 833
SplayLatency: 493
NavierStokes: 1095
----
Score (version 9): 815

Run 4 out of 10:
Richards: 895
DeltaBlue: 945
Crypto: 1109
RayTrace: 1062
EarleyBoyer: 1271
RegExp: 282
Splay: 900
SplayLatency: 537
NavierStokes: 1087
----
Score (version 9): 831

Run 5 out of 10:
Richards: 895
DeltaBlue: 926
Crypto: 1106
RayTrace: 1038
EarleyBoyer: 1272
RegExp: 283
Splay: 942
SplayLatency: 525
NavierStokes: 1087
----
Score (version 9): 829

Run 6 out of 10:
Richards: 898
DeltaBlue: 945
Crypto: 1106
RayTrace: 1057
EarleyBoyer: 1293
RegExp: 282
Splay: 1728
SplayLatency: 704
NavierStokes: 1095
----
Score (version 9): 922

Run 7 out of 10:
Richards: 895
DeltaBlue: 945
Crypto: 1113
RayTrace: 1051
EarleyBoyer: 1248
RegExp: 279
Splay: 1615
SplayLatency: 701
NavierStokes: 1095
----
Score (version 9): 910

Run 8 out of 10:
Richards: 898
DeltaBlue: 952
Crypto: 1104
RayTrace: 1056
EarleyBoyer: 1284
RegExp: 281
Splay: 1680
SplayLatency: 742
NavierStokes: 1095
----
Score (version 9): 924

Run 9 out of 10:
Richards: 895
DeltaBlue: 945
Crypto: 1096
RayTrace: 1044
EarleyBoyer: 1275
RegExp: 282
Splay: 1712
SplayLatency: 656
NavierStokes: 1103
----
Score (version 9): 911

Run 10 out of 10:
Richards: 884
DeltaBlue: 959
Crypto: 1112
RayTrace: 1062
EarleyBoyer: 1277
RegExp: 282
Splay: 1704
SplayLatency: 758
NavierStokes: 1103
----
Score (version 9): 929

jdk9でも相変わらず立ち上げ初期のパフォーマンスがjdk7より悪いが、全体ではjdk8より良くなってjdk7のパフォーマンスに戻りつつある。
rhino forkではjava 9,8,7を対象としているが8はパフォーマンスも悪いしバグも多いので非推奨にするかもしれない。sunspiderは特記するところがなかったので載せてません。

おまけでjdk9-ea-n26のnashorn。レイテンシがあまりに悪すぎてsunspiderは終わるのを待ってられなかったのでOctaneだけ。スループットの影響受けるbenchmarkでだいたい一万超えてますがレイテンシの影響を受けるbenchmarkのスコアが悪すぎて最終的なスコアがほとんど伸びてません。ですが全体としてはjava8版がだいたい平均スコア2k超えるくらいだったのが平均4kくらいまでに上がってるので2倍になってます。ただしjava8版でもwarm upすれば3kくらい出ます。現行のrhino forkのだいたい4倍くらいです。sunspiderはそのうち完走させてみます。


Run 1 out of 10:
Richards: 114
DeltaBlue: 129
Crypto: 1067
RayTrace: 364
EarleyBoyer: 795
RegExp: 148
Splay: 5714
SplayLatency: 2249
NavierStokes: 1505
----
Score (version 9): 617

Run 2 out of 10:
Richards: 9271
DeltaBlue: 1663
Crypto: 7593
RayTrace: 1438
EarleyBoyer: 3436
RegExp: 189
Splay: 1188
SplayLatency: 548
NavierStokes: 1829
----
Score (version 9): 1718

Run 3 out of 10:
Richards: 10817
DeltaBlue: 3430
Crypto: 10684
RayTrace: 10801
EarleyBoyer: 9714
RegExp: 544
Splay: 2714
SplayLatency: 750
NavierStokes: 10245
----
Score (version 9): 4270

Run 4 out of 10:
Richards: 10187
DeltaBlue: 5503
Crypto: 12613
RayTrace: 10363
EarleyBoyer: 11296
RegExp: 515
Splay: 1698
SplayLatency: 716
NavierStokes: 10537
----
Score (version 9): 4340

Run 5 out of 10:
Richards: 10190
DeltaBlue: 9546
Crypto: 12664
RayTrace: 11603
EarleyBoyer: 10779
RegExp: 578
Splay: 1699
SplayLatency: 736
NavierStokes: 10537
----
Score (version 9): 4725

Run 6 out of 10:
Richards: 10180
DeltaBlue: 9579
Crypto: 12614
RayTrace: 11676
EarleyBoyer: 12088
RegExp: 581
Splay: 1753
SplayLatency: 736
NavierStokes: 10391
----
Score (version 9): 4800

Run 7 out of 10:
Richards: 10110
DeltaBlue: 9592
Crypto: 12620
RayTrace: 11749
EarleyBoyer: 12485
RegExp: 587
Splay: 2371
SplayLatency: 874
NavierStokes: 10684
----
Score (version 9): 5099

Run 8 out of 10:
Richards: 10135
DeltaBlue: 8829
Crypto: 12627
RayTrace: 11749
EarleyBoyer: 12906
RegExp: 603
Splay: 2490
SplayLatency: 837
NavierStokes: 10391
----
Score (version 9): 5076

Run 9 out of 10:
Richards: 9926
DeltaBlue: 9598
Crypto: 12620
RayTrace: 11822
EarleyBoyer: 13635
RegExp: 636
Splay: 2525
SplayLatency: 908
NavierStokes: 10537
----
Score (version 9): 5240

Run 10 out of 10:
Richards: 10166
DeltaBlue: 9631
Crypto: 12695
RayTrace: 11822
EarleyBoyer: 13799
RegExp: 640
Splay: 2492
SplayLatency: 874
NavierStokes: 10537
----
Score (version 9): 5239

LiveConnect再実装中

ただしLCのうちJSObjectはRhinoでは元からサポート外なので変わらずサポートしません。
本当はRhinoの拡張であるJavaImporterは廃止してes6のmoduleを使うようにしたいのですがまだmoduleの仕様がバグっているので手が出せません。

JavaArray、JavaClass、JavaObject、JavaPackageは今までどおり使えるようにしようと思っていますがJavaAdapterは未定です。RhinoによるLC3の独自の改善部分は引き継がれます(Java Plug-in二歳実装されたLCでもサポートしていたはずなので)。

そのまえに色々変えないといけないのでしばらくかかる予定。

8u20メモ

java8u20で0xc0000005アクセス違反が起こる。どうもMinecraftとかいろいろ落ちてる模様。それとu20でnashorn動かすと重い。rhinoは影響ないみたい。

Breach

現代版Violaでも作ろうかと思っていたのでBreachを触ってみようかと思う。どっちかというとこれはViolaWWW。
windowsだったからViola動かなかったなぁ。

u65が遅いのでメモ

Octaneのスコアが20も30も下がる。sunspiderの方はそんなに影響ない。u65ということは多分8u11も同じ状況かな。最初はなにかヘマしたのかと思って履歴を辿ったけど関係なかった。