問題タブ [heap-memory]
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.
java - 最大Javaヒープサイズを動的に変更することは可能ですか?
-Xmx を使用して起動時に最大ヒープ サイズを設定できることは知っていますが、実行時に動的に変更することは可能ですか?
それを可能にするツールまたは(文書化されていない)APIはありますか?
heap-memory - ヒープおよびスタック領域の初期化されていない値
ヒープ領域が常にゼロに設定されるのはなぜですか?? 同様にスタックスペースがゼロに設定されないのはなぜですか??
winapi - HeapCreate と GetProcessHeap
C++ でヒープ割り当てを使用するのは初めてです。
プロセス ヒープを使用する代わりにプライベート ヒープを強制的に作成するシナリオを理解しようとしています。ほとんどの場合、一般にプロセス ヒープで十分ではないでしょうか。
ありがとう -- Ashish
c# - 配列、ヒープ、スタック、および値の型
上記のコードでは、new int [100]はヒープ上に配列を生成していますか?私がCLRでc#を介して読んだことから、答えはイエスです。しかし、私が理解できないのは、配列内の実際のintがどうなるかということです。これらは値型であるため、ボックス化する必要があると思います。たとえば、myIntegersをプログラムの他の部分に渡すと、スタックが常に残っているとスタックが乱雑になります。 。それとも私は間違っていますか?それらはボックス化されただけで、アレイが存在する限りヒープ上に存在すると思います。
c++ - boost::shared_ptr とマルチスレッド アクセス
ネットワークスレッドが実行するすべてのフレームの最後に出力オブジェクトが作成されるマルチスレッドフレームワークを実装しようとしています。これにより、別のスレッドがそのフレームの開始時に最新の「完了した出力」ポインターを取得できます。また、出力オブジェクト内に保存されているデータへの安全で完全な読み取り専用アクセスがあることを知っています。
これに対する私の(非常に初期の)アプローチには、主に次のコードブロックが含まれます。
NetworkHandler -
ClientNetworkHandler -
PyCruHandler -
基本的に、ClientNetworkHandler と PyCruHandler は別々のスレッドで独立して実行されます。PyCruHandler は m_latestNetworkOutput のコピーに対して実際には何もしません。何らかの方法でアクセスされる他のすべてのインスタンスをコメントアウトしましたが、まだ次の問題があります。
両方のスレッドが swap (または同等の operator=) を呼び出せるようにすると、最終的に (通常は実行から 2 秒以内ですが、数分かかることもあります)、オペレーターの新規またはアロケーターの削除のいずれかで次のエラーが発生します。選別:
「ヒープ: 解放された後に 2bab3dc で変更されたヒープ ブロック 2bab3b0 を解放する Windows がブレークポイントをトリガーしました。
これはヒープの破損が原因である可能性があり、これはバグを示しています...など."
私は初心者にすぎませんが、これは、shared_ptr オブジェクト間のスレッドセーフとタイミングに敏感なアクセスの問題に関するある種の問題を示しているようです。ただし、shared_ptr スレッド セーフのニュアンスの説明 (ここと他の場所の両方) に当惑するほど混乱してきました。参照カウントがスレッド セーフであることを示す読み取りがあるため、shared_ptrs をコピーしても安全です (ただし、その内部オブジェクト)。スレッド セーフにはなりません)、その他の読み物は、shared_ptr には有用なスレッド セーフが実質的に存在しないことを示しています。shared_ptrs のスレッド セーフに関するブースト ドキュメントを読みましたが、これが私のコードで問題になるかどうかはまだわかりませんでした。
私の質問は、ここにいる誰かが私がしていることの明らかな欠陥を見つけることができますか? 私の目標は、所有スレッドによってまだ保存されている最新の出力オブジェクトにアクセスできるようにすることです。その後、出力のすべてのユーザーがそれを処理するまで、そのオブジェクトは (所有スレッドが後の出力に移動した後でも) 削除されません。同じように。私の頭の中では、共有ポインターはこれに最適なように思えました...しかし、これに頭をぶつけて3時間後、私は疑問に思い始めています...
事前にどうもありがとうございました。これを誤って投稿した場合はお詫び申し上げます。ここに来るのは初めてで、プロトコルに関する限り、FAQ はかなりのんびりしているように見えました。
c++ - ヒープにメモリを割り当てる関数のプロトタイプ (C/C++)
私はC++にかなり慣れていないので、これはおそらく初心者の質問です。それは、私がかなり一般的だと思うことを行うための「適切な」スタイルに関するものです。
私は、その職務を実行する際に、呼び出し元が使用できるようにヒープにメモリを割り当てる関数を作成しています。この関数の良いプロトタイプがどのように見えるべきか興味があります。今私は持っています:
それを使用するには、次のように記述します。
ただし、ポインターをポインターに渡しているという事実は、おそらくこれを間違った方法で行っていることを示唆しています。
誰か教えてくれませんか?
jvm - 最適なフリーヒープとトータルヒープの比率はどれくらいですか?
最適なフリーヒープとトータルヒープの比率はどれくらいですか?この比率のどの値で、ヒープサイズを増やす/ヒープサイズを減らすことを検討する必要がありますか?
.net - マネージド ヒープの内容を .NET アプリケーションからプログラムで表示できますか?
.NET アプリケーションでマネージ ヒープにアクセスして、現在そこに割り当てられているオブジェクトを列挙することはできますか?
それを可能にするさまざまなツールがあることは知っていますが、フォームを閉じた後にすべてが破棄されてクリーンアップされているかどうかを確認するなど、自動テストで使用できるように、コードから自分で行うことをお勧めします。