問題タブ [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.

0 投票する
2 に答える
6823 参照

c# - リストボックスの WPF のイメージを破棄 (メモリ リーク)

たくさんの画像が入った ListBox があります (datatemplate を使用して行います)。画像は、アイテム ソースを設定することによって作成されます。

その後、リストボックスの Items.Clear() メソッドを使用してクリアされます。リストボックスの Items.Add メソッドを使用して、新しい画像を追加します。

ただし、メモリ使用量はどんどん増えていきます。表示されるのは同じ 300 ほどの小さな画像ですが、メモリが解放されることはないようです。アプリは約 40 メグを使用し始め、すぐに 700 メグまで上昇します。これらすべてのイメージが使用しているメモリを解放するにはどうすればよいですか?

編集:私が言及するのを忘れたことの1つは、画像(サイズはそれぞれ約4〜5k)がネットワーク経由でロードされていることです。キャッシングはこれに何らかの責任がありますか?12 個の画像を表示すると、約 10 メガバイトのメモリが消費されます。これはファイルサイズの約 100 倍です。

0 投票する
6 に答える
1096 参照

c++ - データ メンバーは、C++ のオブジェクトと同じメモリ空間に割り当てられていますか?

次のようなクラスがあるとします。

そして、私はそれを次のようにインスタンス化します:

x はスタックにありますか、それともヒープにありますか? sはどうですか?

0 投票する
4 に答える
2010 参照

memory - Erlang が大きなシーケンスでクラッシュするのはなぜですか?

Erlang の学習を始めたばかりで、プロジェクト オイラーの問題をいくつか試しています。ただし、erlang シェルをクラッシュさせることなく、大きなシーケンスに対して任意の操作を実行できるようです。

つまり、これでも:

次のエラーで erlang がクラッシュします。

eheap_alloc: 467078560 バイトのメモリ (タイプ「ヒープ」) を割り当てることができません。

実際のバイト数はもちろん異なります。

現在、半分のギグは大量のメモリですが、4 ギガの RAM と仮想メモリ用の十分なスペースを備えたシステムで処理できるはずです。

erlang により多くのメモリを使用させる方法はありますか?

0 投票する
11 に答える
8184 参照

objective-c - Cocoa で autorelease を使用するコストはいくらですか?

Apples のドキュメントのほとんどは、特に GUI ビューを作成するときに、自動解放されたオブジェクトの使用を避けているようですが、自動解放されたオブジェクトを使用するコストを知りたいですか?

最終的に、すべてが自動解放され、retain/release の使用が特定のケースのルールの例外となる戦略を使用する必要がありますか? または、 [NSString stringWithEtc...] のような便利なメソッドから返されたオブジェクトの例外である autorelease を使用して、一般的に保持/解放を使用する必要がありますか?

0 投票する
5 に答える
7564 参照

c - Cで変数に使用されたメモリを解放する方法は?

C で変数 (長い文字列など) に使用したメモリを解放するにはどうすればよいですか?

0 投票する
1 に答える
371 参照

linux - アドレスのVMマッピングを効率的に確認するにはどうすればよいですか?

JITの出力を処理する必要があるトレースツールを作成しているので、スタックがかなり奇妙に見えることがあります。いくつかのヒューリスティックをアドレスに適用して、それらがコード、データ、またはガベージであるかどうかを判断してみたいと思います。(私が時々間違っている場合、それは大したことではありませんが、プロセスがクラッシュした場合、それほど多くはありません。)

cat /proc/«pid»/mapsLinuxのプロセスのVMマッピングのリストを取得できます。そのファイルを解析せずに、プロセス内からこの情報(または任意のサブセット)にアクセスすることは可能ですか?rwxアドレスのビットを調べるのが理想的です。基本的に、の「読み取り」バージョンが必要ですmprotect(2)

これができない場合、特定のアドレスへのアクセスがセグメンテーション違反を引き起こすかどうかを判断するのはどうですか?(この場合、すでにSIGSEGVハンドラーがインストールされているので、簡単に上書きすることはできません。または、それを実行するだけです。)

0 投票する
20 に答える
67324 参照

c++ - プログラムでC++配列のサイズを決定しますか?

この質問は、同様の質問に触発されました: delete[] はオペランド配列のサイズをどのように「認識」しますか?

私の質問は少し異なります: プログラムで C++ 配列のサイズを決定する方法はありますか? そうでない場合、なぜですか? 配列を取るすべての関数は、サイズを指定するために整数パラメーターも必要とします。しかし、リンクされた質問が指摘したように、delete[]割り当てを解除するメモリのサイズを知っている必要があります。

次の C++ コードを検討してください。

これSize of arr: 4は、ポインターのサイズである " " を出力します。256 を出力する関数があればいいのですが、C++ には存在しないと思います。(繰り返しますが、問題の一部は、なぜそれが存在しないのかということです。)

明確化int arr[256];: ヒープ (つまり " ") ではなくスタックで配列を宣言すると、sizeof演算子は 1024 (配列の長さ * sizeof(int)) を返すことを知っています。

0 投票する
8 に答える
87358 参照

c# - 構造体で「new」を使用すると、ヒープまたはスタックに割り当てられますか?

演算子を使用してクラスのインスタンスを作成するとnew、メモリがヒープに割り当てられます。演算子を使用して構造体のインスタンスを作成するとnew、ヒープまたはスタックのどこにメモリが割り当てられますか?

0 投票する
9 に答える
23471 参照

c++ - C++ でオブジェクトを返す

クラスからオブジェクトを返すとき、いつメモリを解放するのが適切ですか?

例、

Animal Lister のインスタンスを作成し、そこから Animal 参照を取得した場合、どこで削除すればよいですか?

ここでの問題は、AnimalLister には、作成された動物のリストを追跡する方法がないため、そのようなコードのロジックを変更して、作成されたオブジェクトを削除する方法があることです。

0 投票する
7 に答える
7308 参照

c++ - void ポインタの配列に割り当てられたメモリを解放する

void ポインターの配列を宣言しています。それぞれが任意の型の値を指します。
void **values; // Array of void pointers to each value of arbitary type

次のように値を初期化します。

値に割り当てられたメモリ (void ポインタの配列) を解放/削除するにはどうすればよいですか?