回答編集履歴

1

追記、訂正

2016/02/09 00:50

投稿

ipadcaron
ipadcaron

スコア1693

test CHANGED
@@ -11,3 +11,27 @@
11
11
  前後一コマ余裕があることで、正回転と逆回転両方に対応できます。
12
12
 
13
13
  なので正確には、21駒あるとき、1駒目は、bにするのが正しくなりますね。裏で21駒のリストを管理して、表示用の5駒だけ毎回レンダリングさせれば無駄が無いのでは?と思います。
14
+
15
+
16
+
17
+ ついき
18
+
19
+ -------
20
+
21
+ 21駒は、現行?内規、時速何キロだったか思い出せません。
22
+
23
+ 確か一周0.37 秒くらいだったような、、、
24
+
25
+
26
+
27
+ なんか、gcについての話なのに全然関係ないこと書いていますが、メモリ節約、既存メモリの使い回しによる有限資源の枯渇を防ぐには色々悩みますね。なので、destroy は破棄みたいな処理でしょうか、破棄ではなくてclear あたりが適当なのでは?と思います。5駒のイメージを1駒スクロールさせて、次の1駒スクロール用の5駒のイメージとスワップする。3リールあれば、5駒のイメージエリアが6つ必要になりますが、必要な資源は予め確保しておいて、動作中はなるべくメモリ確保なふぉは行わないようにできればメモリ利用効率も高くなり、動作も安定するのでは?と思います。クラスインスタンスやリストの確保などもメモリ確保になります。リストも実は内部の閾値を超えたときに新たに倍のメモリを確保する、というのをー延々繰り返します。
28
+
29
+ List list = new List(); よりも、最大容量がわかってるならば、new List(250); などとした方がメモリの分断も起きにくく、gcも掛かりにくくなります。
30
+
31
+ メモリ分断とは、
32
+
33
+ 利用中、解放済み、利用中、利用中、解放済み、解放済み、利用中、、、、、、
34
+
35
+ みたいな状況です。gcはヒープ領域が少なくなると、解放済みエリアを圧縮して再配置することで未使用領域を広げようと頑張ります。頑張る時間だけ処理落ちになるのでメモリ管理は大事です。
36
+
37
+