メモリリーク
メモリリークとは、プログラムがシステムのメモリを少しずつ消費し、最終的に使い果たしてしまうプログラミングエラーの一種です。メモリリークはゆっくり発生するため、コンピューターの性能が徐々に低下し、最終的にプログラムがクラッシュするか、システム全体のオペレーティングシステムがフリーズします。リークを引き起こしているプログラムを終了するとシステムのメモリが解放され、次にそのプログラムを実行するまで問題は解消されます。
メモリリークは、プログラムが不要になったメモリを解放しないときに発生します。プログラムがプロセスを実行するとき、そのプロセスを実行するために必要な量のメモリをシステムに要求します。そのプロセスが終了した後、プログラムはそのメモリをシステムに返し、ほかのプログラムが使えるようにする必要があります。プログラムにメモリを解放する正しい関数が含まれていない場合(または、それらの関数が正しく使われていない場合)、代わりにそのメモリを無期限に保持します。プログラムが後で同じプロセスを再び実行すると、すでに割り当てたメモリを使うのではなく、システムにさらにメモリを要求します。その結果、使用するRAMの量が増え続け、最終的にシステムにほかの機能のためのメモリが残らなくなります。
メモリリークが発生するプログラムは、エラーが修正されるまで、実行するたびにメモリをリークし続けます。幸い、ソフトウェア開発キットには、プログラムのソースコードを調べてメモリリークを確認できるデバッガーが含まれていることがよくあります。プログラムの開発者がエラーを見つけると、プログラムを更新してパッチをリリースできます。
NOTE: JavaやPythonなどの一部のプログラミング言語では、「ガベージコレクション」と呼ばれるメモリ管理技術を使用します。これはメモリを自動的に再利用するため、多くの(ただし、すべてではありません)メモリリークエラーを解決できます。
知識をテストする