« 広島の旅・2 | トップページ | Cannon imageFORMULA DR-P208 »

ガベージ★これくしょん

去年末にも書きましたが

Google playで公開した、「けさらん育成計画」のDLが調子よいのです。
もしかすると、今月中には、万の単位に行くかもしれない…。

しかし、日々無数に増殖していく、GooglePlayのフリーアプリの中から、何の宣伝もしていないこの無名のアプリを、どうやって皆さん見つけ出してるんだろう…と疑問になってきました。

で、ふと、Google playのページを実際に見てみたのです。

すると…

アプリ>ゲーム>カジュアル のカテゴリの

 「人気のカジュアル(無料)」

のページに、「けさらん」が掲載されてるじゃないですか!

大人気の「キャンディークラッシュ」なんかと同じカテゴリですよ、ええ!

そりゃ嬉しい! 確かにこれなら、発見してもらえる可能性も高まるってものです。

…まあ、一時的なものだとは、思いますけどね。

アプリに感想も寄せられていてうれしいです。
(中には「動かなかった」という残念なコメントもありましたが…)

今のところ、(うれしいので)時々見て簡単な返信もしてます、が、
コメントペースがこれ以上になるとちょっと手が回らなくなるかも…。
そうしたらすみません。

感想の中に、

「ケサランパサランは幸せを呼ぶという伝説があるので、このアプリで幸せになれる気がする」

…的なコメントがありました。

それはいいキャッチフレーズですね。

幸せになれる(気がする)アプリ!」 なんてね。

しかし「人気のカジュアル」の他のアプリのDL数見ると 500000~1000000とか行ってるんですね。

…桁が違うよ…。

----

…本題。

この期に乗じて、次の攻勢をかけるべく、既にPC版で作ったFlashゲームを、Android用に再調整し、Googleplayにアップしようと企んでいました。

ゲームは「Attack of the Space UFO」。

自分としては、単純ながらいい感じ(古きよき、スターラスター的な味が再現できたなと)と自負してるものです。

もともと、AIR Android 用に作っていたのですが、加速度センサーのみの操作性が難しすぎて、放っておいたものを、タッチ操作にも対応させてみました。
これが、なかなかうまくいった。

で、調子よくAndroid実機でテストプレイしていたところが…

ゲームを続けていくと、どんどん遅くなる!? 

こ、これは、噂に聞く、「メモリーリーク」という現象では…!?

FlashのActionscriptでは、不要になったオブジェクトを削除する際に、色々ちゃんと「手続き」をしないと、オブジェクトの参照が残り続け、メモリを圧迫し、メモリリーク状態となる…らしい。

手続きというのは、例えば、不要になった変数にはnullを代入する…など。

一応、そういう知識はあり、ちゃんと手続きをしているはずなのですが…

  • System.totalMemory で動作中のメモリ使用量を確認してみると、どんどん数字が上がっていく。

ちゃんとした手続きをしていれば、「ガベージコレクション」という仕組みが、メモリを開放してくれるはずなのですが…一向に減る様子が無い。

このガベージコレクション(以下ガベコレ。「艦これ」みたいだな)というのが、いつ実行されるか…それは事前に予測できないという…。
なんか、コンピュータにあるまじき、気紛れでもやっとした機能なんですな。

そこで、Actionscriptに用意されている、System.gc() というガベコレを強制発動するメソッドを使ってみました。

すると、

  • System.gc() を使うと、数値は減る

ということはちゃんと手続きもできていて、ガベコレの対象になってるんじゃないかと思うんですが…。なんで自然にガベージコレクションが発動しないのか。

まあいい、だったら System.gc() を使って、時々強制的にガベコレしてやればいいんじゃん。

System.gc() は、Flash Playerのデバッグ版(ムービープレビュー)およびAIRアプリケーションでは、使えるらしい…ということなので。
(ただし、AIRでも、特定の条件でないとダメという説もあるが)

で、System.gc() を入れて、さらに、使用中のメモリ量を表示するようなデバッグ機能を付けて、Android実機でプレイしてみたところ…

  • メモリ使用量は少なめに抑えられ、定期的に減少するようになった。
  • しかし、メモリ使用量に関わらず、やっぱり遅くなっていく!!

あーもう、なんだかわけがわからん!!

原因は、メモリリークとか、ガベコレじゃないのか!?

もともと、本職プログラマじゃないんで、こういうややこしいことになると、さっぱりわからんのです。

仕方ないので、まあ、次のゲームなんかも作りながら、じっくり解析してみるしかないか…。

(シュリンプとか、けさらんみたいなゲームであれば、こういうことはあまり気にしなくていいんですけどねえ。)

(2014.1.11)

|

« 広島の旅・2 | トップページ | Cannon imageFORMULA DR-P208 »

Flash」カテゴリの記事

スマートフォン」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/533792/58920972

この記事へのトラックバック一覧です: ガベージ★これくしょん:

« 広島の旅・2 | トップページ | Cannon imageFORMULA DR-P208 »