問題タブ [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.
objective-c - Objective C でのオブジェクトの割り当てと初期化
オブジェクトを割り当てて初期化する次の 2 つの方法の違いは何ですか?
と
リンゴの例のほとんどは、最初の方法を使用しています。なぜ割り当て、初期化、オブジェクト化を行った後、すぐに解放するのでしょうか?
c++ - Using .reset() to free a boost::shared_ptr with sole ownership
I'm storing an object (TTF_Font
) in a shared_ptr
that is provided to me from a third-party API. I cannot use new or delete on the object, so the shared_ptr
is also provided a "freeing" functor.
If, later, I need to explicitly free this object is it correct to do this:
And then let screenFont
(the actual shared_ptr
object) be destroyed naturally?
regex - Perl 正規表現が大量のメモリを使用しているのはなぜですか?
大きなスカラーに対して正規表現を実行しています。この試合では何もキャプチャされませんが、この試合の後、私のプロセスは 30M 増加します。
$c
はかなり大きなスカラー (約 21M) への参照ですpos(${$c})
が、正しい場所にあり、式が最初の文字で一致し、pos(${$c})
一致後に正しい場所に更新されることを確認しました。しかし、前述したように、このマッチでは何もキャプチャしていませんが、プロセスは #A と #B の間で約 30M 増加しています。私の記憶はどこへ行くの?
編集:はい、の使用は$&
責任がありました。私たちは Perl 5.8.8 を使用しており、スクリプトは組み込みのText::Balancedを使用するGetopt::Declareを使用していました。このモジュールの 1.95 バージョンは を使用していました。Perl 5.10 に同梱されているバージョン 2.0.0 では、参照が削除され、問題が軽減されています。$&
$&
python - リストをクリアする
リストをクリアできないのは面倒です。この例では:
2回目にaを空のリストに初期化すると、リストの新しいインスタンスが作成されますが、これはメモリ内の別の場所にあるため、最初のリストを参照するために使用することはできません。
同じポインターを保持する唯一の方法は、次のようなことです。
これはかなり長ったらしいですが、これを解決するより良い方法はありますか?
visual-studio - VisualStudio2005のメモリ使用量
Visual Studioのメモリ使用量は、平均して150〜300MBのRAMになることがよくあります。
Visual Studioの複数のインスタンスを開いた状態で実行する必要があることが非常に多い開発者として、VSが使用するメモリの量を最適化するためのパフォーマンスの秘訣はありますか?
1つのアドイン(TFS)を使用してVS2005を実行しています
c++ - 関数内の文字列リテラル: 自動変数またはヒープに割り当てられていますか?
関数内で使用する文字列リテラルは自動変数ですか? それとも、手動で解放する必要があるヒープに割り当てられていますか?
以下に示すコードのような状況があり、文字列リテラルをクラスのプライベート フィールド (コードで ONE としてマーク) に割り当て、それを後でプログラムで取得して使用します (TWO としてマーク)。スタック内の変数を ONE 内のフィールドに割り当てていますか? この場合、プログラムが十分に小さかったために機能したダングリング ポインターをコードが参照している可能性はありますか?
コンパイルして実行しましたが、問題なく動作しましたが、実際のプログラムでこのようなクラスのフィールドに文字列リテラルを割り当てているときに奇妙なクラッシュが発生し、上記のケースが疑われます。
変数「s」をポインターではなくchar配列として宣言する必要がありますか? std::string を使おうと思っているのですが、ちょっと気になるところです。
いつものように、ポインタやヘルプは大歓迎です:)ありがとう。
java - Java での循環参照
複雑で循環的な方法で相互に参照するクラス インスタンスの集合体を考えると、ガベージ コレクターがこれらのオブジェクトを解放できない可能性はありますか?
これは過去に JVM の問題だったことを漠然と思い出しますが、これは何年も前に解決されたと思っていました。それでも、jhat を調査したところ、現在直面しているメモリ リークの原因が循環参照であることが明らかになりました。
注: 私は常に、JVM が循環参照を解決し、そのような「ゴミの島」をメモリから解放できるという印象を受けてきました。ただし、誰かが例外を見つけたかどうかを確認するために、この質問を投げかけています。
ruby - Ruby メモリ管理
私はしばらくの間 Ruby を使用してきましたが、大きなプロジェクトの場合、かなりの量のメモリを占有する可能性があることがわかりました。Ruby でメモリ使用量を削減するためのベスト プラクティスは何ですか?
- 各回答に 1 つの「ベスト プラクティス」を持たせ、コミュニティに投票してもらいます。
c++ - どのような場合にmallocおよび/またはnewを使用しますか?
C ++では、データを割り当てて解放する方法が複数あることがわかります。電話をかけるときmalloc
は電話をかけ、演算子free
を使用するときnew
はペアリングする必要がdelete
あり、2つを組み合わせるのは間違いです(たとえば、free()
作成されたものを呼び出す)new
演算子を使用)が、実際のプログラムで/をいつ使用する必要があるのか、および/をいつ使用する必要があるのかが明確ではありませmalloc
んfree
。new
delete
C ++の専門家の方は、この点に関して従う経験則や規則を教えてください。
c# - 管理された環境で使用される最大のヒープ? (.net/ジャバ)
Java や .NET などの管理された環境で個人的に使用した最大のヒープは? 遭遇したパフォーマンスの問題にはどのようなものがありますか? また、ヒープが大きいほど収益が減少しましたか?