タグ付けされた質問 「heap」

ヒープ(データ構造)は、深さに関して順序付けられたツリーです。ヒープは、動的割り当て用に確保されたプロセスメモリを参照することもできます。

27
スタックとヒープはどこにありますか?
プログラミング言語の本では、これらの2つが何であるかを説明することなく、値型はスタック上に作成され、参照型はヒープ上に作成されると説明されています。私はこれの明確な説明を読んでいません。私は何を理解していますスタックとはですか。だが、 それらはどこにありますか(物理的には実際のコンピュータのメモリ内)? それらは、OSまたは言語ランタイムによってどの程度制御されていますか? それらの範囲は何ですか? それぞれのサイズを決定するものは何ですか? 何が速くなるのですか?

18
C ++プログラマーが「新規」の使用を最小限に抑える必要があるのはなぜですか?
私がつまずいスタックオーバーフロー質問のstd ::リストを使用しているときのstd ::文字列を使用してメモリリーク<はstd :: string>に、そしてコメントの一つは、この言います: 使用を中止newそんなに。どこで新しいものを使ったのか、私にはわかりません。C ++では値によってオブジェクトを作成できます。これは、この言語を使用することの大きな利点の1つです。 すべてをヒープに割り当てる必要はありません。Javaプログラマーの ように考えるのをやめます。 それが何を意味するのかよくわかりません。 C ++でオブジェクトをできるだけ頻繁に値で作成する必要があるのはなぜですか。また、内部的にどのような違いがありますか? 答えを誤解しましたか?

23
どちらが速いか:スタック割り当てまたはヒープ割り当て
この質問はかなり初歩的に聞こえるかもしれませんが、これは私が一緒に働く別の開発者との議論でした。 ヒープに割り当てるのではなく、スタック割り当てに可能な限り注意を払いました。彼は私に話し、私の肩越しに見守っていて、彼らは同じパフォーマンスであるので、それは必要ではないとコメントしました。 スタックの増加は一定の時間であり、ヒープ割り当てのパフォーマンスは現在のヒープの複雑さ(適切なサイズのホールを見つける)と割り当て解除(ホールを縮小して断片化を減らす)の両方に依存するという印象を受けました。多くの標準ライブラリの実装では、私が間違っていない限り、削除中にこれを行うのに時間がかかります)。 これは、おそらくコンパイラに大きく依存するものとして私を襲います。特にこのプロジェクトでは、PPCアーキテクチャにMetrowerksコンパイラを使用しています。この組み合わせに関する洞察が最も役立ちますが、一般的に、GCCとMSVC ++の場合はどうなりますか?ヒープ割り当てはスタック割り当てよりもパフォーマンスが高くありませんか?違いはありませんか?または、違いが非常に小さいので、無意味なマイクロ最適化になります。
503 c++  performance  memory  stack  heap 

17
ヒープの構築はどのようにしてO(n)時間の複雑さになりますか?
誰かがどのようにしてヒープを構築することがO(n)複雑になるかを説明するのを手伝ってくれる? アイテムをヒープに挿入することはO(log n)であり、挿入はn / 2回繰り返されます(残りはリーフであり、ヒーププロパティに違反することはできません)。つまり、これは複雑さがであることを意味しO(n log n)ます。 つまり、「ヒープ化」する各アイテムについて、これまでのヒープの各レベル(log nレベル)に対して1回フィルターをかける必要がある可能性があります。 何が欠けていますか?


26
オブジェクトヒープ用に十分なスペースを予約できませんでした
プログラムを実行しようとするたびに、次の例外が繰り返し表示されます。 VMの初期化中にエラーが発生しました オブジェクトヒープ用に十分なスペースを予約できませんでした Java仮想マシンを作成できませんでした。 仮想メモリ(ページサイズ)とRAMサイズを大きくしようとしましたが、うまくいきませんでした。 このエラーを解消するにはどうすればよいですか?
277 java  jvm  heap 

7
.hprofファイルを分析するにはどうすればよいですか?
次のフラグを使用して運用サーバーを実行しています:-XX:+ HeapDumpOnOutOfMemoryError 昨夜、サーバーでヒープエラーが発生したときにjava-38942.hprofファイルが生成されました。システムの開発者はフラグを知っていましたが、フラグから有用な情報を取得する方法がないことがわかりました。 何か案は?
227 java  profiling  heap 


8
整数のストリームから実行中の中央値を見つける
重複の可能性: Cのローリングメディアンアルゴリズム 整数がデータストリームから読み取られると仮定します。これまでに読み込まれた要素の中央値を効率的な方法で見つけます。 私が読んだソリューション:左側の最大ヒープを使用して有効中央値よりも小さい要素を表し、右側の最小ヒープを使用して有効中央値よりも大きい要素を表すことができます。 着信要素を処理した後、ヒープ内の要素の数は最大で1要素だけ異なります。両方のヒープに同じ数の要素が含まれている場合、ヒープのルートデータの平均が有効な中央値であることがわかります。ヒープのバランスが取れていない場合は、より多くの要素を含むヒープのルートから有効な中央値を選択します。 しかし、最大ヒープと最小ヒープをどのように構築するのでしょうか。つまり、ここで有効な中央値をどのようにして知るのでしょうか。max-heapに1つの要素を挿入してから、min-heapに次の1つの要素を挿入する、というように、すべての要素について考えます。私がここで間違っているなら、私を訂正してください。
223 algorithm  heap  median 

14
.Netの優先度キュー[終了]
閉まっている。この質問はスタックオーバーフローのガイドラインを満たしていません。現在、回答を受け付けていません。 この質問を改善してみませんか?Stack Overflowのトピックとなるように質問を更新します。 3年前休業。 この質問を改善する 優先キューまたはヒープデータ構造の.NET実装を探しています 優先度キューは、新しい要素が任意の間隔でシステムに入ることができるため、単純なソートよりも柔軟性のあるデータ構造です。新しいジョブを優先度キューに挿入する方が、そのような到着ごとにすべてを並べ替えるよりもはるかにコスト効率が高くなります。 基本優先度キューは、3つの主要な操作をサポートしています。 Insert(Q、x)。キーがkのアイテムxを指定して、優先度キューQに挿入します。 Find-Minimum(Q)。優先度キューQの他のどのキーよりもキー値が小さいアイテムへのポインターを返します。 Delete-Minimum(Q)。キーが最小の優先キューQからアイテムを削除します 私が間違った場所を探しているのでない限り、フレームワークにはありません。誰かが良いものを知っていますか、それとも自分でロールすべきですか?

12
メモリの断片化とは何ですか?
「メモリの断片化」という用語は、C ++の動的メモリ割り当てのコンテキストで数回使用されたと聞いています。メモリの断片化を処理する方法についていくつかの質問を見つけましたが、それ自体を処理する直接的な質問は見つかりません。そう: メモリの断片化とは何ですか? アプリケーションのメモリの断片化が問題であるかどうかを確認するにはどうすればよいですか?どのようなプログラムが最も苦しみそうですか? メモリの断片化に対処するための良い一般的な方法は何ですか? また: 動的割り当てを使用すると、メモリの断片化が増える可能性があると聞きました。これは本当ですか?C ++のコンテキストでは、すべての標準コンテナー(std :: string、std :: vectorなど)が動的メモリ割り当てを使用することを理解しています。これらがプログラム全体で使用される場合(特にstd :: string)、メモリの断片化が問題になる可能性が高くなりますか? STLの多いアプリケーションでメモリの断片化をどのように処理できますか?

4
JBossのヒープダンプにHeapDumpOnOutOfMemoryErrorパラメータを使用する
-XX:+HeapDumpOnOutOfMemoryErrorアプリケーションでメモリ不足エラーが発生したときに、ヒープダンプを取得するために、JVM起動オプションにパラメーターを私のJBoss起動スクリプトに追加できると言われました。このデータがどこにダンプされるのかと思っていましたか?それはコンソールだけですか、それともログファイルですか?コンソールのみの場合、コンソールからUnixサーバーにログインしていない場合はどうなりますか?
182 java  jboss  memory-leaks  heap 

17
コマンドラインツールを使用してJavaヒープサイズと使用メモリを確認する(Linux)
Javaアプリケーションのヒープサイズ(および使用メモリ)を確認するコマンドラインツール(Linux)はありますか? 私はjmapを試してみました。しかし、それは情報を提供します。Eden / PermGenなどの内部メモリ領域については、私には役に立ちません。 私は次のようなものを探しています: 最大メモリ:1GB 最小メモリ:256 MB ヒープメモリ:700 MB 使用済みメモリ:460 MB それで全部です。JConsoleなどでこれを確認できることはわかっていますが、コマンドラインツールが必要です(JMXなどを有効にできません)。 そのようなツール/コマンドを知っていますか?
171 java  linux  performance  memory  heap 



弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.