3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Unityでのメモリ管理

Last updated at Posted at 2020-01-11

UnityとGC

Tech Academyのメンターさんからメモリ管理を気にして実装できたら中堅という風に言われた(やりたい処理を実装できるのは当たり前で)。
C#では基本的にガベージコレクション(GC)というやつがいらなくなったメモリをいい感じに解放しているらしい。
しかし、**Unityでシーン再生中にGCが発生すると数フレーム飛ぶため、アクションゲームではシーン再生中にGCを発生させないようにしないといけない**らしい。

GCを発生させる条件とアクションゲームのリアルタイム性を損なわない対策

上のリンク先の記事によると、主なGC発生条件は「メモリが許容されるしきい値を超える場合」であり、これを防げばよいみたい。
で、極論対策としてはそのシーンを開始時にすべてのメモリ領域の確保を終わらせることみたい。
いや、無理じゃね。

実用に耐えうる手段また調べよう・・・

メモリ利用状況の確認

メンターさんに聞いた話しだととりあえずProfilerというやつでやるらしい。
ただ、具体的にどの部分でめっちゃメモリ食ってるとかはわかんないので、
Profilerで確認しながら実装していかないとまずいらしい。
一通り実装し終わったからさぁメモリの負荷みますか、だと詰むらしい。
メモリの限界値としては、経験上システムメモリの半分くらいに押さえておいた方がよいらしい。iPhoneだと800MBくらいが目安か、というところ。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?