問題タブ [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.
c - スレッド内のすべての関数は、ポインターを渡さなくても、動的に割り当てられたメモリ (ヒープ) にアクセスできますか、それとも関数に対してローカルですか?
非常に基本的な質問があり、助けが必要です。動的に割り当てられたメモリ (ヒープ上) の範囲を理解しようとしています。
ここで、引数(へのポインタ)を渡さずにメモリが割り当てられていても、構造体にアクセスできますか?t
ヒープはスレッドに共通なので? グローバル変数として外部で定義すると、どのような違いがあり、何か問題がありますか?funct()
main()
t
function funct
struct node * t = NULL
main()
c++ - 非 .NET アプリケーション/DLL のメモリ使用量を分類するにはどうすればよいですか?
32 ビットの Visual Studio 8.0 C++ Windows DLL (非 .NET) が、予想よりも多くのメモリを消費しているようです。使用されているメモリの合計の 1 つの数字だけでなく、メモリがどこに向かっているのかを正確に判断したい (タスク マネージャーやリソース モニターのメモリ使用量の値には関心がない)。16 ビット時代には、HeapWalker は非常に役に立ち、BITMAP ハンドルを選択して、そのグラフィック コンテンツを表示することさえできました。.MAP ファイルを読み込んでさまざまなセクションを追加する方法を覚えようとしていますが、ドキュメントがほとんどなく、この手法がどれほど正確かはわかりません。誰かアドバイスはありますか?
java - java.lang.OutOfMemoryError: NetBeans での Java ヒープ領域
これは、NetBeans によって開始された Tomcat サーブレット コンテナのインスタンスで Web アプリケーションを実行したときに発生するエラーです。これを修正するために、netbeans.conf のヒープ サイズを変更しましたが、それでも同じエラーが表示されます。どうすればこれが起こらないようにできますか?
java - netbeans のプロジェクト プロパティの VM オプション
netbeans5.0 でサーブレットを使用しているときに Java ヒープ領域に問題が発生し、それを解決するための解決策も得ました。彼らは、プロジェクトのプロパティで実行カテゴリの VM オプションを変更するように求めました。しかし、プロパティでそのようなオプションを見つけることができませんでした。 .このエラーの対処方法を教えてください。これは私のプロジェクトのプロパティの写真です。
java - JVisualVMを使用してJavaのリモートアプリケーションからヒープダンプを取得する
JVisualVM(Windows XP、Sun Java 1.6.0.13、32ビットクライアントVM)を実行して、離れたアプリケーション(Linux、Sun Java 1.6.0.07、64ビットサーバーVM)を監視します。実際のリモートアプリケーションを起動する前にjstatd
、オールアクセスポリシーを使用してリモートマシンで起動します。
次に、コマンドラインを使用して実際のアプリを起動します
クライアントマシンから、遠くのアプリを見て監視することができます。スレッドダンプなども作成できます。残念ながら、ヒープダンプボタンはグレー表示になっています。
JVisualVMを使用してリモートで監視されているアプリケーションからヒープダンプを取得するにはどうすればよいですか?
jConsoleを使ってみました。jConsoleを使用すると、com.sun.management.HotSpotDiagnosticdumpHeap操作を使用して遠隔ヒープダンプを作成できます。ダンプをクライアント側に転送し、JVisualVMが提供するツールを使用して分析したいと思います。これどうやってするの?
c++ - malloc()を使用してガベージコレクション/圧縮を強制します
さまざまな長さの入力配列でさまざまなアルゴリズムをベンチマークするC++プログラムがあります。それは多かれ少なかれこのように見えます:
(2)のヒープ管理全体を(1)の状態にリセットすることは可能ですか?プログラム中に割り当てられたヒープに割り当てられたすべてのメモリは、(3)で解放されることが保証されています。
Linuxでg++4.3を使用しています。
編集:C /C++には実際のガベージコレクションがないことを理解しています。(2)の空きリストにある隣接する空のメモリチャンクにメモリ割り当てを強制的に結合させたい。
c++ - USE_HEAPまたはUSE_STACKへのC/C++パターン
オブジェクトをスタックまたはヒープにきれいに割り当てることができるマクロ(または同様のもの)を定義する方法はありますか?
例えば。現在のコード:
最も簡単な提案は次のとおりですが、以下に示すように、2セットのコードを維持することはあまりクリーンではありません。
お客様のニーズに応じて、どちらの方法でもコードをコンパイルできるデザインパターン/プロキシクラスを探しています。
編集:コードは、組み込みデバイス/(組み込み)Linux /WindowsMobile用のライブラリを構築するために使用されます。ほとんどのお客様は、スタックベースの割り当てのみを望んでいます。他の数人は、スタックをヒープと交換するように依頼しました。
ありがとう、チャールズ
memory - 「a」ヒープと「the」ヒープの関係は何ですか?
ヒープはツリーデータ構造であり、ツリーの上位レベルには、下位レベルよりも常に大きい(または、そのように設定されている場合は小さい)値が含まれます。「」ヒープは、プログラムが動的割り当てに使用できる空きRAMの集まりです。どちらも「ヒープ」と呼ばれていますが、一方が他方と何の関係があるのでしょうか。
java - 実行時の JVM ヒープ サイズの設定
実行中の Java プログラムからヒープ サイズを設定する方法はありますか?
visual-c++ - Visual C++ のメモリ割り当ての問題をデバッグする
次のいずれかのメッセージで最終的にクラッシュするソフトウェアをデバッグしています。
このソフトウェアは非常に古いものですが、現在変更することはできません。Visual C++ 6.0 で書かれています。ある種のバッファ オーバーフローであると推測しているため、どこで発生しているかを検出する方法を見つけようとしています。
PageHeap (私が欲しいものを教えてくれるようです) とGFlagsに関する情報を見つけましたが、それを機能させることができないようです。
テストプログラムを作成しました:
エラーが発生します:
次に、次のコマンドを実行して PageHeap をアタッチしようとしました。
その後、(Visual C++ 6.0 インターフェイスと Windows エクスプローラーの両方を使用して) 再実行すると、同じエラーが発生しました。
次に、リリース バージョンをコンパイルして、Visual C++ 6.0 インターフェイスを介して実行すると、次のエラーが発生しました。
そして、Windows エクスプローラーから、エラー レポートを送信するように求める Windows ダイアログが表示されました。
私は何が欠けていますか?