▼目次
・メモリとは
・メモリ管理とは
・メモリリーク
・二重解放
・自動メモリ管理「ガベージコレクション」
▼文字書き起こし
メモリとは、メインメモリのことで、CPUがプログラムを実行するときに使う記憶装置のことです。
このメモリは、私たちが普段使っているパソコンやスマホなど、ほとんど全てのコンピュータに内蔵されています。
コンピュータがプログラムを実行したときに使用するデータの多くは、メモリに格納されます。
ちなみに、CPUとは、マウス、キーボード、ハードディスクなどからデータを受け取り、演算などを行う装置のことです。
メモリ管理とは、データを格納するために必要な「メモリ領域」を割り当てたり、不要になったデータが占拠しているメモリ領域を解放したりすることを指します。
なぜメモリ管理が必要なのでしょうか?
メモリには容量の上限があるので、効率よく使うためにメモリを管理する必要があるからです。
例えば、プログラミングでは、変数を使用する場合にメモリを確保し、変数を使い終わったらメモリを解放します。
確保したメモリは、ソースコードで明示的に開放する必要があるプログラミング言語があり、解放し忘れると使えるメモリが少なくなります。
メモリが少なくなると、新しく変数を使いたい場合にメモリを割り当てられなくなり、エラーの原因になります。
C言語の場合、メモリ領域の確保は malloc() 関数(マロック関数)を使い、メモリ領域を解放するときは free() 関数を使います。
メモリ管理について知っておくと、プログラミング中にメモリ関連のバグがあったとき対処しやすくなったり、プログラムを高速化するときに役立ちます。
メモリ管理をする上で、気をつけなければならないことが2つあります。
メモリリークと二重解放です。
メモリリークとは、確保したメモリ領域が解放されず、メモリが確保されたままになってしまうことです。
C言語で言うと、malloc() でメモリ領域を確保し、 free() でメモリ領域を解放し忘てしまった場合が挙げられます。
メモリリークが続き、メモリ領域が確保できなくなると、プログラムがエラーを起こしたり、強制終了するなどの危険があります。
二重解放とは、一度解放したメモリ領域をもう一度解放してしまうことです。
C言語で言うと、 free() で領域を解放したあと、もう一度同じデータに対して free() を実行してしまった場合が挙げられます。
二重解放してしまうと、メモリ内のデータが消えてしまい、予期せぬことやエラーが発生したりします。
また、フリーズしたり、強制終了するなどの危険があります。
メモリの管理には、ガベージコレクションという機能があります。
これは、メモリ領域の解放をコンピュータが自動でやってくれる機能です。
ガベージコレクションを使うことで、二重解放を回避することができます。
また、メモリリークに関してもメモリ領域の解放し忘れなどが無くなります。
ガベージコネクションは、メモリを安全に管理できるメリットがあるので、ほとんどのプログラミング言語で標準装備となっています。
一方、C、C++、Rustなどの言語では、ガベージコレクションを採用していません。
▼文字書き起こしブログ
https://kino-code.com/what-is-memory-management/
▼自己紹介
現在:フリーランス(マーケティング関連の人工知能開発、データ分析や業務自動化など)
前職:リクルート
▼Twitter
https://twitter.com/kino_code/likes
▼Facebook
https://www.facebook.com/%E3%82%AD%E3%83%8E%E3%82%B3%E3%83%BC%E3%83%89-105693727500005/
▼BGM
*FREE* J.Cole type beat "Without a Doubt" (Apollo Produced It)
https://soundcloud.com/prodapollobeats/free-jcole-type-beat-without-a-doubt-apollo-produced-it
▼タグ
#メモリ管理 #メモリ管理とは #ガベージコレクション
メモリ管理とは?|メモリ管理の仕組みをまじえて4分でわかりやすく解説します
カテゴリ一覧
スポーツ
ニュース
音楽
ラーニング
趣味
グルメ
ガールズ
ゲーム
ギャンブル・宝くじ
エンタメ
アニメ・漫画
どうぶつ