問題タブ [memory-management]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - .NET での使用後にオブジェクトを Null/Nothing に設定する
オブジェクトを使い終わったら、すべてのオブジェクトをnull
( VB.NET で) に設定する必要がありますか?Nothing
.NET では、インターフェイスを実装するオブジェクトのインスタンスを破棄して一部のリソースを解放することが不可欠であることを理解していますIDisposable
が、オブジェクトは破棄された後でも何かになる可能性があります (したがって、isDisposed
フォームのプロパティ)。記憶の中で、または少なくとも部分的に?
また、オブジェクトがスコープ外になると、ガベージ コレクターの次のパスに備えてコレクションのマークが付けられることも知っています (ただし、これには時間がかかる場合があります)。
したがって、これを念頭に置いnull
て、システムがメモリを解放する速度を上げるように設定します。これは、メモリが範囲外であることを解決する必要がなく、悪い副作用があるからですか?
MSDN の記事では例としてこれを行うことはありません。現在、害が見られないため、これを行っています。ただし、さまざまな意見が混在しているため、コメントは役に立ちます。
memory-management - WebSphere 6.1 世代別 GC のデフォルトのナーサリ サイズ制限
デフォルトでは、ナーサリはヒープの 25% であると想定されており、初期ヒープ サイズは 1GB に設定されています。verbose gc をオンにすると、ナーサリのサイズが 55 ~ 60MB であることがわかります。を使用してサイズを強制しました-Xmns256M -Xmnx512M
。これは自動的に起こるべきではありませんか?
memory - mallocをログに記録する方法
これは少し架空で大幅に簡略化されていますが...
サードパーティによって作成された関数を呼び出すプログラムを想定します。これらの当事者は敵対的ではないと見なすことができますが、「有能」であると見なすことはできません。各関数はいくつかの引数を取り、副作用があり、値を返します。実行されていない間は状態がありません。
目的は、すべてのmalloc(など)をログに記録し、関数の終了後にすべてを解放することで、メモリリークを引き起こさないようにすることです。
これは可能ですか?これは実用的ですか?
ps私にとって重要なのは、割り当てが持続しないようにすることです。そのため、それを行わずにメモリリークを削除する方法は、私には役立ちません。
c# - 共通メモリの最適化
csharp、dotnet 2.0 で最も一般的なメモリの最適化は何ですか。winform アプリでデフォルトで実行されていない可能性のある一般的なことがあるかどうかを確認したかった
c++ - グローバル メモリは C++ で初期化されますか?
グローバル メモリは C++ で初期化されますか? もしそうなら、どのように?
(2番目) 明確化:
プログラムが起動するとき、プリミティブが初期化される前に、グローバル メモリになるメモリ空間には何がありますか? たとえば、ゼロになっているのか、ゴミなのかを理解しようとしています。
状況は次のとおりです:シングルトン参照を設定できますか-instance()
初期化の前に呼び出しを介して:
結果として2つのシングルトンインスタンスを取得しますか?
シングルトンの複数のインスタンスに関する私の C++ クイズを参照してください...
objective-c - NSAutoreleasePool 自動解放プールはどのように機能しますか?
私が理解しているように、alloc、new、またはcopyで作成されたものはすべて手動でリリースする必要があります。例えば:
私の質問ですが、これは同じように有効ではないでしょうか?:
c++ - 別の種類のポインタを介してバッファを削除しますか?
次のC++があるとします。
これはC++標準に従って安全ですか?にキャストバックしてからchar*
使用する必要がありますdelete[]
か?デストラクタのないプレーンな通常のデータであるため、ほとんどのC++コンパイラで機能することを私は知っています。安全であることが保証されていますか?
c++ - この C++ コードはメモリ リークを引き起こしますか (配列の新規キャスト)
私は可変長構造 (TAPI) を使用するいくつかのレガシー C++ コードに取り組んできました。構造のサイズは可変長文字列に依存します。構造体は、次のように配列をキャストすることによって割り当てられnew
ます。
ただし、後でdelete
呼び出しを使用してメモリを解放します。
new[]
この配列と非配列の混合はdelete
メモリリークを引き起こしますか、それともコンパイラに依存しますか? 代わりにmalloc
このコードを使用するように変更した方がよいでしょうか?free
vb6 - Scripting.Dictionary の RemoveAll() メソッドは最初にすべての要素を解放しますか?
VB6 アプリケーションではDictionary
、キーがString
s で値がカスタム クラスのインスタンスである があります。を呼び出すRemoveAll()
と、Dictionary
最初にカスタム オブジェクトが解放されますか? または、明示的に自分でこれを行う必要がありますか?
c++ - C++ でメモリ リークを回避するための一般的なガイドライン
C++ プログラムでメモリ リークを起こさないようにするための一般的なヒントは何ですか? 動的に割り当てられたメモリを誰が解放する必要があるかを知るにはどうすればよいですか?