メモリについての検証 1
何にも考えないでプログラムを組んでいくと
メモリを無駄に使って重くなったり、ゲームが動作しなくなったりするらしい。
メモリとかよくわからないので、プログラムを走らせているときに
実際にメモリが増えたり減ったりするさまを診断ツールなるものをつかって確認してみたいなと思います。
この手の内容は調べればでてきそうですが、自分で手を動かして確認したほうが理解が進むかなーと思ったのでやります。
まずはメモリのお勉強
大体こんな感じに理解した。
・メモリ領域にはスタック領域とヒープ領域なるものがあるらしい。
・ヒープ領域をたくさん使って解放されないままだと重くなる。メモリを無駄にしているということになる。
・値型だとスタック領域を使う。参照型だとヒープ領域を使う。クラスをインスタンスしたりするのは参照型なのでヒープを使う。
・C#にはガベージコレクションなる機能があり、ヒープ領域にあるが、使わなくなったメモリを自動で解放してくれる。
ただし、画像等ファイルを外部から読み込む場合は、ガベージコレクションで解放されないので自分で解放しないといけない。
わかりやすかった記事。
www.engineer-walk.com
自分の理解だと、以下3点のようになると思っているので
ほんとにそうなるか、診断ツールなるもので見てみようと思います。
・クラスをnewするとヒープで使用しているメモリが増えるよ。
・変数に値を入れてもヒープ全然増えないよ。
・外部ファイルを読み込むとヒープメモリ増えるよ & 解放すると減るよ。
眠いので確認はまた明日以降。
`