Amazonでボードゲームを探す

Table of Contents


内部仕様

UML (2009/9/3)

Client Class

Client Class

Client State

Client State Chart

Sequence

Sequence newgame Sequence com_move Sequence man_move Sequence resign

AI実装における仕様

ゲーム共通で使えるAIコンポーネントを抽出し、common/ai.rb にまとめてある。*1

性能評価

評価環境について

環境1
Ubuntu 9.04 32bit, Core Duo 2GHz, Mem 3.5GB
環境2
CentOS x64 5.3, Xeon 3GHz dual core, Mem 8GB

Marshalsの性能 Ruby 1.8

局面複製のためのオブジェクトDeep Copyに関する調査

環境1

単位(sec)

# w/o Marshal w/ Marshal
1 95 96
2 93 99
3 92 90
4 93 91
5 95 91
平均 93.6 93.4
標準偏差 1.3 3.9

環境2

単位(sec)

# w/o Marshal w/ Marshal
1 70 74
2 73 72
3 74 71
4 75 72
5 70 77
平均 72.4 73.2
標準偏差 2.3 2.4

Threadの性能

環境1

単位(sec)

# nonthread thread
1 87 99 61 42 106 106 79 100
289 391
2 85 99 60 42 106 103 77 90
286 377
3 85 78 62 70 103 105 78 89
295 375
4 85 99 61 42 101 131 76 61
287 369
平均 289.3 378.0
標準偏差 4.0 9.3

環境2

単位(sec)

# nonthread thread
1 42 37 28 32 52 48 33 36
139 169
2 42 46 28 20 52 45 34 38
136 169
3 42 37 28 33 52 56 33 22
140 163
4 42 36 29 32 52 57 33 22
139 164
平均 138.5 166.3
標準偏差 1.7 3.2

Ruby 1.8 vs 1.9

環境1

単位(sec)

# 1.8 1.9
1 57 38
2 56 39
3 57 38
4 57 38
5 58 38
平均 57 38.2
標準偏差 0.71 0.45

Ruby vs JRuby (1) - Single Thread

Active Recordを使うようにプログラムの修正をおこなっているため、 既に測定した環境でのテストも、再度計測した。

環境1

Ruby1.9ではActiveRecord版が動作しない。

単位(sec)

# 1.8 JRuby
1 595 332
2 537 327
3 553 338
4 533 338
5 552 339
平均 554 334.8
標準偏差 24.58 5.17
性能比 1.00 0.604

性能比は、環境1 Ruby1.8 Single-Threadを1として...数値が小さいほど高速

環境2

単位(sec)

# 1.8 1.9 JRuby
1 339 179 152
2 339 174 151
3 338 173 156
4 338 179 156
5 328 175 155
平均 336.4 176 153.75
標準偏差 4.72 2.83 2.63
性能比 0.607 0.318 0.278

性能比は、環境1 Ruby1.8 Single-Threadを1として...数値が小さいほど高速

Ruby vs JRuby (2) Multi-Thread

Active Recordを使うようにプログラムの修正をおこなっているため、 既に測定した環境でのテストも、再度計測した。

環境1

Ruby1.9ではActiveRecord版が動作しない。

単位(sec)

# 1.8 JRuby
1 640 248
2 634 253
3 653 251
4 656 244
5 658 255
平均 648.2 250.2
標準偏差 10.59 4.32
性能比 1.170 0.452

性能比は、環境1 Ruby1.8 Single-Threadを1として...数値が小さいほど高速

環境2

単位(sec)

# 1.8 1.9 JRuby
1 480 199 93
2 483 200 93
3 494 200 91
4 495 202 101
5 497 208 100
平均 489.8 201.8 95.6
標準偏差 7.73 3.63 4.56
性能比 0.884 0.364 0.173

性能比は、環境1 Ruby1.8 Single-Threadを1として...数値が小さいほど高速

Ruby vs. JRuby 性能比較まとめ

上記実験結果の比較

性能対比。比較は、処理時間による性能比。

環境 Single 1.8 (2) Single 1.9 (2) Single J (2) Multi 1.8 (2) Multi 1.9 (2) Multi J (2)
結果(sec) 336.4 176.0 154.0 489.8 201.8 95.6
Single 1.8 (2) 1.000 0.523 0.458 1.456 0.600 0.284
Single 1.9 (2) 1.911 1.000 0.875 2.783 1.147 0.543
Single J (2) 2.184 1.143 1.000 3.181 1.310 0.621
Multi 1.8 (2) 0.687 0.359 0.314 1.000 0.412 0.195
Multi 1.9 (2) 1.667 0.872 0.763 2.427 1.000 0.474
Multi J (2) 3.519 1.841 1.611 5.123 2.111 1.000

システム時間での比較

real user sys
Single 1.8 (2) 140.863 047.189 053.553
Single 1.9 (2) 055.651 055.541 000.049
Single J (2) 052.475 058.730 000.317
Multi 1.8 (2) 231.588 132.856 058.655
Multi 1.9 (2) 010.553 010.451 000.075
Multi J (2) 034.570 015.846 000.594

Flexに関すること

URLLoaderとタイムアウト

URLLoaderは、デフォルトでは、30secでタイムアウト。 URLLoaderWithTimeoutクラスを使うことでデフォルト120secに指定。

ただし、Flashplayerのバージョン、環境によってTimeout値が異なることがある。

SEE ALSO

以下、開発者専用のページです

Last-modified: 2014-08-23 (土) 17:41:14