[解決済み】メモリリークは大丈夫なのか?[クローズド]
質問
を持つことは許されるのでしょうか? メモリリーク CやC++のアプリケーションでは?
もし、あるメモリを割り当て、それをアプリケーションの最後の行(例えば、グローバルオブジェクトのデストラクタ)まで使用したらどうでしょうか?時間の経過とともにメモリ消費量が増大しない限り、アプリケーションが終了するときにOSがメモリを解放してくれることを信じてもいいでしょうか(Windows、Mac、Linuxで)?OSが解放するまでメモリが使われ続けていた場合、これを本当のメモリリークとみなすこともできるのでしょうか。
もし、サードパーティのライブラリがこのような状況を強要してきたらどうでしょうか?そのサードパーティーのライブラリーがどんなに素晴らしいものであったとしても、使用を拒否しますか?
現実的なデメリットは1つだけで、それは、これらの良性のリークがメモリリーク検出ツールで誤検出されることです。
解決方法は?
いいえ。
プロフェッショナルとして、私たちが自問すべきなのは、「これをやってもいいのか」ではなく、「こんなことはありえないのか」ということです。 良い そして、「メモリリークを探し出すのは面倒だ」というのは、良い理由とは言えません。
私は物事をシンプルに考えるのが好きなんです。 そしてそのシンプルなルールとは、私のプログラムにはメモリリークがあってはならないということです。
そうすると、私の生活もシンプルになります。 メモリリークを発見したら、それが許容範囲かどうかを判断するために複雑な決定木構造を実行するのではなく、排除してしまうのです。
これは、コンパイラの警告に似ています。その警告は、私の特定のアプリケーションにとって致命的なものなのでしょうか?そうではないかもしれません。
でも、最終的にはプロの規律に関わることです。 コンパイラの警告を許容し、メモリーリークを許容することは、最終的に自分の背中に噛み付くことになる悪い習慣なのです。
極端な話、外科医が患者の体内に手術器具の一部を放置することは許されるのでしょうか?
その器具を取り外すコストやリスクが、入れたままにするコストやリスクを上回る状況が発生する可能性はありますし、無害である状況もあり得ますが、もし私がこの質問をSurgeonOverflow.comに投稿して、「いいえ」以外の答えを目にしたら、医療従事者に対する信頼が大きく損なわれてしまうのではないでしょうか。
-
もし、サードパーティーのライブラリーがこのような状況を強要してきたら、そのライブラリーの全体的な質を真剣に疑うことになるでしょう。 車を試乗したときに、カップホルダーの中に緩んだワッシャーやナットが2つほど入っていたようなものです。
関連
-
[解決済み】C++でランダムな2倍数を生成する
-
[解決済み] 既に.objで定義されている-二重包含はない
-
[解決済み】指定範囲内の乱数で配列を埋める(C++)
-
[解決済み】システムが指定されたファイルを見つけられませんでした。
-
[解決済み】警告 - 符号付き整数式と符号なし整数式の比較
-
[解決済み】エラー。引数リストに一致するコンストラクタのインスタンスがない
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] 要素ごとの加算は、結合ループよりも分離ループの方がはるかに高速なのはなぜですか?
-
[解決済み] C++11では、標準化されたメモリモデルが導入されました。その意味するところは?そして、C++プログラミングにどのような影響を与えるのでしょうか?
-
[解決済み] C++のPOD型とは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C++でint型に無限大を設定する
-
[解決済み】LLVMで暗黙のうちに削除されたコピーコンストラクタの呼び出し
-
[解決済み】C++でユーザー入力を待つ【重複あり
-
[解決済み] error: 'ostream' does not name a type.
-
[解決済み】エラー:strcpyがこのスコープで宣言されていない
-
[解決済み】C++ - 適切なデフォルトコンストラクタがない [重複]。
-
[解決済み】VC++の致命的なエラーLNK1168:書き込みのためにfilename.exeを開くことができません。
-
[解決済み】システムが指定されたファイルを見つけられませんでした。
-
[解決済み】警告 - 符号付き整数式と符号なし整数式の比較
-
[解決済み] 配列のベクトルを扱う正しい方法