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

0 投票する
12 に答える
15459 参照

c++ - メモリ管理、ヒープ破損、およびC ++

だから、私はいくつかの助けが必要です。私はC++でプロジェクトに取り組んでいます。しかし、どういうわけかヒープを壊してしまったと思います。std::stringこれは、クラスにを追加し、別のクラスから値を割り当てたという事実に基づいていstd::stringます。

スタックダンプでシステムがクラッシュします。したがって、基本的には、コードとメモリ管理のすべてを停止して調べ、どこで失敗したかを見つける必要があります。コードベースはまだ小さい(約1000行)ので、これは簡単に実行できます。

それでも、こういうのは頭がおかしいので、捨てようと思いました。私はLinuxシステムを使用していて、をいじくり回しましvalgrindた。私が何をしているのか完全にはわかりませんstd::stringが、のデストラクタは無効なフリーであると報告されました。Google検索から「ヒープの破損」という用語を取得したことを認めなければなりません。この種のものに関する一般的な目的の記事も同様にいただければ幸いです。

(前にrm -rf ProjectDir、C#でもう一度やり直してください:D)

編集:私はそれを明確にしませんでしたが、私が求めているのは、この種のメモリの問題を診断するためのアドバイスです。std :: stringのものが正しいことを知っているので、それは私がやったことです(またはバグですが、Selectに問題はありません)。私が書いたコードをチェックでき、非常に賢い人ならすぐに問題を見つけることができると確信していますが、この種のコード分析を私の「ツールボックス」に追加したいと思います。

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

c++ - ヒープ上にオブジェクトが作成されないようにするにはどうすればよいですか?

プラットフォームに依存しないC++コードで、オブジェクトがヒープ上に作成されないようにする方法を知っている人はいますか?つまり、クラス「Foo」の場合、ユーザーがこれを実行できないようにします。

そして、これを行うことだけを許可します。

誰かアイデアはありますか?

乾杯、

0 投票する
30 に答える
1733591 参照

java - 「java.lang.OutOfMemoryError: Java heap space」エラーに対処するには?

Java 5でクライアント側のSwingアプリケーション (グラフィカル フォント デザイナー) を作成しています。最近、メモリ使用量を控えめにしていないため、エラーが発生しています。ユーザーは無制限の数のファイルを開くことができ、プログラムは開いたオブジェクトをメモリに保持します。簡単な調査の後、私は 5.0 Java Virtual Machine の Ergonomicsや、Windows マシンで JVM のデフォルトの最大ヒープ サイズが.java.lang.OutOfMemoryError: Java heap space64MB

この状況を考えると、この制約にどのように対処すればよいですか?

Java のコマンド ラインオプションを使用して最大ヒープ サイズを増やすこともできますが、それには使用可能な RAM を調べて、起動プログラムまたはスクリプトを作成する必要があります。さらに、有限の最大値まで増やしても、最終的に問題が解決されるわけではありません。

オブジェクトをファイル システムに頻繁に保持するようにコードの一部を書き直して (データベースの使用も同じことです)、メモリを解放することができます。うまくいくかもしれませんが、おそらく大変な作業でもあります。

上記のアイデアの詳細や、ヒープサイズを動的に拡張する自動仮想メモリなどの代替案を教えていただければ、それは素晴らしいことです。

0 投票する
3 に答える
4538 参照

java - HP-UX 環境の JVM では、C ヒープと Java ヒープのどちらで実行されますか?

HP-UX 環境の特定の Java アプリケーションで奇妙な問題が発生しています。

ヒープは -mx512 に設定されていますが、gpm を使用してこの Java プロセスのメモリ領域を確認すると、1.6GB 以上の RSS メモリを使用し、1.1GB が DATA 領域に割り当てられていることがわかります。24 ~ 48 時間で非常に急速に成長し、その後大幅に減速しますが、数時間ごとに 2MB ずつ増加します。ただし、Java ヒープにはリークの兆候は見られません。

これがどのように可能であったかについて少し調べてみたところ、Java ヒープと C ヒープのメモリ リークに関する HP の記事が見つかりました: http://docs.hp.com/en/JAVAPERFTUNE/Memory-Management.pdf

私の質問は、C ヒープと Java ヒープで何が実行されるかを決定するものです。Java ヒープを介して実行されないものについては、C ヒープで実行されているオブジェクトをどのように識別しますか? さらに、Java ヒープは C ヒープ内にありますか?

0 投票する
30 に答える
1718159 参照

memory-management - スタックとヒープとは何ですか?

プログラミング言語の本では、値型はスタック上に作成され、参照型はヒープ上に作成されると説明されていますが、この 2 つが何であるかは説明されていません。私はこれについての明確な説明を読んだことがありません。スタックとは何かを理解しています。しかし、

  • それらはどこにあり、何ですか (物理的には実際のコンピューターのメモリ内にあります)。
  • それらは OS または言語ランタイムによってどの程度制御されますか?
  • 彼らの範囲は何ですか?
  • それぞれの大きさは何で決まるのですか?
  • 何が速くなるの?
0 投票する
3 に答える
2032 参照

memory - VS2005: ヒープ サイズを制限する

Xmx???M Java フラグのような VS2005 C++ コンパイラ フラグで、Windows で実行するアプリケーションのヒープ サイズを制限できます。

現在の空きメモリを確認するためにメモリを埋めることができるように、ヒープ サイズを制限する必要があります。(コードは組み込みシステムでも実行され、これがメモリ使用量を取得するための最良の方法です)

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

javac - Borland JBuilder 2005/2006 で javac プロセスの最大ヒープ サイズを増やす方法

最新のほとんどの IDE には、javac がコンパイルを実行するのに十分なヒープ メモリを確保するために設定できるパラメータがあります。ここに入る価値のない理由により、当面は JBuilder 2005/2006 に縛られており、ソース コードの量が javac で処理できる量を超えているようです。

JBuilder 2005/2006 javac に固有の回答を保持してください (現時点では移行できず、Borland Make コンパイラは Java 1.6 を正しくサポートしていません)。

javac にどのパラメータをどのように渡す必要があるかを理解しています問題は、IDE がこれらのパラメータをどこにも設定できないように見えることです。多くの構成が Jbuilder Install\bin*.config ファイルに隠されています。答えはどこかにあると思いますが、見つかりませんでした。

0 投票する
3 に答える
1097 参照

ruby - 実行中の Ruby プロセスからメモリ内のオブジェクトをダンプする方法はありますか?

この情報を取得している間にプロセスを強制終了しても問題ありません。

0 投票する
3 に答える
11807 参照

c# - デリゲートを持つローカル変数

これは明らかにベストプラクティスではないようです。なぜそれがベストプラクティスではないのか、またはこれがどのように機能するのかを誰かが説明できますか? 説明を提供する本や記事をいただければ幸いです。

出力される値は、2 番目の値"Modified"です。コンパイラの魔法のどの部分がこれを機能させていますか? これは、ヒープ上の値を追跡し、後で再度取得するのと同じくらい簡単ですか?

[編集]: いくつかのコメントを考慮して、元の文をいくつか変更します...

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

performance - ヒープの断片化を回避する方法は?

私は現在、大量のメモリを必要とする医用画像処理のプロジェクトに取り組んでいます。ヒープの断片化を回避し、すでにメモリにロードされている画像データへのアクセスを高速化するためにできることはありますか?

アプリケーションはC++で記述されており、WindowsXPで実行されます。

編集:アプリケーションは、再フォーマット、ルックアップテーブルの計算、目的のサブ画像の抽出など、画像データを使用して前処理を行います...アプリケーションは処理中に約2 GBのRAMを必要とし、そのうち約1.5GBを使用できます。画像データ用。