Tour of Rustを進めていての備忘録。
Rustでは、データを保持するためメモリ空間をに3種類持つ。
##1. データメモリ
固定長もしくは スタティック (例: プログラムのライフサイクルで常に存在するもの)なデータ。
プログラム内の文字列(例: ‘Hello World’)のキャラクタは読み取りにしか使えないため、この領域に入る。 コンパイラはこうしたデータに対してチューニングをしており、メモリ上の位置はすでに知られていてかつ固定であるため、非常に速く使うことができる。
##2. スタックメモリ
関数内で宣言された変数。
関数が呼び出されている間は、メモリ上の位置は変更されることがないため、コンパイラからするとチューニングができるので、スタックメモリも非常に速くデータにアクセスできる。
##3. ヒープメモリ
プログラムの実行時に作られるデータ。
このメモリにあるデータは追加、移動、削除、サイズの調節などの操作が許されている。
動的であるため、遅いと思われがちだが、これによりメモリの使い方に柔軟性を生み出すことができる。
- アロケーション(allocation) = データをヒープメモリに入れること
- ディアロケーション(deallocation) = データをヒープメモリから削除すること