メモリリーク

メモリリークとは、プログラムがシステムのメモリを少しずつ消費し、最終的に使い果たしてしまうプログラミングエラーの一種です。メモリリークはゆっくり発生するため、コンピューターの性能が徐々に低下し、最終的にプログラムがクラッシュするか、システム全体のオペレーティングシステムがフリーズします。リークを引き起こしているプログラムを終了するとシステムのメモリが解放され、次にそのプログラムを実行するまで問題は解消されます。

メモリリークは、プログラムが不要になったメモリを解放しないときに発生します。プログラムがプロセスを実行するとき、そのプロセスを実行するために必要な量のメモリをシステムに要求します。そのプロセスが終了した後、プログラムはそのメモリをシステムに返し、ほかのプログラムが使えるようにする必要があります。プログラムにメモリを解放する正しい関数が含まれていない場合(または、それらの関数が正しく使われていない場合)、代わりにそのメモリを無期限に保持します。プログラムが後で同じプロセスを再び実行すると、すでに割り当てたメモリを使うのではなく、システムにさらにメモリを要求します。その結果、使用するRAMの量が増え続け、最終的にシステムにほかの機能のためのメモリが残らなくなります。

メモリリークが発生するプログラムは、エラーが修正されるまで、実行するたびにメモリをリークし続けます。幸い、ソフトウェア開発キットには、プログラムのソースコードを調べてメモリリークを確認できるデバッガーが含まれていることがよくあります。プログラムの開発者がエラーを見つけると、プログラムを更新してパッチをリリースできます。

NOTE: JavaPythonなどの一部のプログラミング言語では、「ガベージコレクション」と呼ばれるメモリ管理技術を使用します。これはメモリを自動的に再利用するため、多くの(ただし、すべてではありません)メモリリークエラーを解決できます。

更新日 October 25, 2023 著者: Brian P.

quiz知識をテストする

Which of the following statements about black box testing is true?

A
It is done by users not familar with a program's source code.
0%
B
It is a type of penetration testing performed by AI bots.
0%
C
It is performed after a software program has been released to the public.
0%
D
It determines how many illegal copies of a software program exist.
0%
Correct! Incorrect!     View the Black Box Testing definition.
More Quizzes →

Tech Terms コンピューター辞書

このページのメモリリークの定義は、TechTerms.comの著者が執筆したオリジナルの定義です。このページを参照または引用する場合は、定義の直下にある緑色の引用バーをご利用ください。

私たちの目標は、コンピューター用語をわかりやすく説明することです。すべての定義において正確さとわかりやすさを追求しています。フィードバックや新しい技術用語の提案がある場合は、お問い合わせください

Tech Terms ニュースレター

毎日または毎週のニュースレターで技術知識を高めましょう!今すぐ購読して、新しい用語やクイズをメールでお受け取りください。

無料のTechTermsニュースレターに登録する

メールの受信頻度を選択してください

各メールのリンクから、いつでも登録解除または頻度変更ができます。 ご質問はこちらからお問い合わせください。

注意:ニュースレターは英語で配信されます。