メモリリーク単語

メモリリーク
  • 5
  • 0pt
掲示板へ

メモリリークとは、プログラムバグの一つ。

概要

プログラム内でデータを溜めておきたい場合、OSに頼んでメモリの領域を確保してもらい、その領域内にデータをおく。使い終わったら解放する必要があるが、自動的にはされないのでプログラム責任解放の操作をする必要がある。このとき何らかの理由で解放の操作がされなかった場合、その領域はプログラム内にいつまでも居残り続けることになる。この状態をメモリリークという。借りた物を返さない最低である。即刻KILLすべき。

メモリリークを起こした時点でプログラムがおかしくなるというわけではないので、発生箇所の特定困難で見過ごされがちのバグである。デーモンのように長時間使用される物で起こった場合、メモリをじわじわと食いつぶしていき、しまいには自身の動作を続けることができなくなる。それだけでなくほかのプログラムの動作を阻させたり、そもそも起動させなくしたりと、システム全体が極めて不安定になる。このため、メモリリークは致命的なバグである。

とはいえ、プログラムを終了させれば食いつぶしていた領域はきれいさっぱりくなる(はず)。メモリリークが起こるのを織り込み済みにしておき、「システムメンテナンス」と称して定期的再起動をする、という運用をしているサービスも多い。動けば正義なのである。

メモリリークが起きないようにメモリ解放を自動的に行うようにする機構をガベージコレクションという。スクリプトや最近開発された言ではこのメモリ管理を使っていることが多い。

関連項目

【スポンサーリンク】

  • 5
  • 0pt
記事編集 編集履歴を閲覧

この記事の掲示板に最近描かれたお絵カキコ

お絵カキコがありません

この記事の掲示板に最近投稿されたピコカキコ

ピコカキコがありません

メモリリーク

4 ななしのよっしん
2011/06/18(土) 12:16:24 ID: u4SY+URPjg
>>3
お前はそのPCに何の恨みがあるんだwwww
👍
高評価
0
👎
低評価
0
5 ななしのよっしん
2013/03/15(金) 12:39:28 ID: 4hyi5pnufk
ソフトシステムに対して借りパクをしてしまうこと

ここに「コンピュータが最も得意なことは同じ仕事を繰り返し行うこと」という特性が加わり、小さな借りパクが何万回も積み重なるということになる

最終的にはある程度の段階で強制中断・追放されるか、システムまるごとおとなる

「これもういらないよね」と言って積極的に片付けてくれるお手伝いさん(GC)が近年人気があるが、
部屋のものを勝手に触るな、でていけ」と嫌う昔気質なPGもいる
👍
高評価
0
👎
低評価
0
6 ななしのよっしん
2013/06/08(土) 20:46:09 ID: jdeEp6XUb1
>>2
ああ、循環参照ね。たとえばこういうパターンメモリリークが起きる。
Shared Pointerを参照数計測方式を利用して実現した場合を考える。
Tを参照するスマートポインタS<T>についてである。
TにはS<T>のメンバがある。TオブジェクトAとBが存在し、AのS<T>がBを参照し、BのS<T>がAを参照した場合を考えよう。
この場合、表側からAとBの参照のどちらもが失われた場合であっても、AもBも参照数計測オブジェクトが1をしたままなのでどちらも解放されない。
こんな説明で大丈夫
👍
高評価
0
👎
低評価
0
7 ななしのよっしん
2013/07/25(木) 23:45:08 ID: TMscKM8f1X
311 名前仕様書しさん [] 投稿日2008/07/23() 21:59:55 ID:

メモリリーク調中に発見したコメント
// I believe GC :-)

知っていて出荷したな!!
👍
高評価
1
👎
低評価
0
8 ななしのよっしん
2014/01/09(木) 01:33:33 ID: mFUq8zFRgc
>>6
スマートポインタGCに入れるべきかどうかは微妙のような気がする。
マークアンド・スイープ系なら循環しててもリークしないわけで。

GCで言うところのメモリリークとは、すでに未使用なんだけれども参照がバグで残っててGCに回収されないメモリが沈殿してる状態のこと。典的にはクリアされないキャッシュとか。
手動管理と違って参照が切れればそのうち自動で回収されるが、参照カット自体は自動じゃないので、オブジェクト生存期間を意識しなければならないのはGCでも非GCでも同じというお話。
👍
高評価
0
👎
低評価
0
9 ななしのよっしん
2014/07/25(金) 19:23:15 ID: 2Q00nuBvJp
chromeニコニコ放置すると起きるもの。
👍
高評価
0
👎
低評価
0
10 ななしのよっしん
2017/04/18(火) 00:54:17 ID: gKUq5PpAq2
RPGツクールMV
メニュー画面開く度に
メモリ不足で強制終了のカウントダウン……
👍
高評価
0
👎
低評価
0
11 ななしのよっしん
2018/09/04(火) 22:32:23 ID: 9svxPBHA9L
艦これ二期(HTML5版)で発生中
👍
高評価
0
👎
低評価
0
12 ななしのよっしん
2020/04/20(月) 09:45:43 ID: IP5ocZ4iGG
わかりやすい説明サンガツ
👍
高評価
0
👎
低評価
0
13 ななしのよっしん
2022/04/09(土) 13:23:21 ID: nZCv4SrHEJ
そもそも、GCで起こる「参照つかみっ放しで、メモリが回収対にならない」現を、本当に「メモリリーク」と呼んでいいか疑問。

というか、個人的には誤用だと思う。だって、「リーク」(=漏れ出し)してないし。
あくまで「delete しないまま手放してしまい、回収不可能にしてしまうバグ」のこと。
👍
高評価
0
👎
低評価
0

ニコニコニューストピックス