問題タブ [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、JNI、および C アプリケーションでのメモリ フットプリントの問題
C で記述されたアプリケーションの一部があり、JVM を生成し、JNI を使用して Java アプリケーションと対話します。Process Explorer によるメモリ フットプリントが最大 1GB になり、メモリが不足します。私が知る限り、最大2GBまで取得できるはずです。私が信じていることの 1 つは、JVM が使用しているメモリが Process Explorer に表示されないことです。私の xmx は 256 に設定されています。Java 側のメモリを監視するステートメントをいくつか追加しました。これは 256 でピークに達し、GC はその仕事を行っており、その側ではすべて問題ありません。私の質問は、残りの 700 MB 以上はどこで消費されているのでしょうか? Java/JNI/C メモリの専門家はいますか?
c# - コンピューターに搭載されている RAM の総量を取得するにはどうすればよいですか?
C# を使用して、コンピューターに搭載されている RAM の総量を取得したいと考えています。PerformanceCounter を使用すると、次のように設定して、使用可能な RAM の量を取得できます。
しかし、メモリの総量を取得する方法が見つからないようです。どうすればこれを行うことができますか?
アップデート:
MagicKat: 検索中に見たのですが、機能しません - 「アセンブリまたは参照がありませんか?」。それを参照に追加しようとしましたが、そこにはありません。
c - スタックオーバーフローの原因は何ですか?
これは私の質問のトピックがフォーラムの名前に似ているという偶然の一致だと思われるかもしれませんが、実際には「スタックオーバーフロー」という用語をグーグルで検索してここに到達しました。
Cを使用してプログラムするOPNETネットワークシミュレータを使用しています。大きな配列サイズで問題が発生していると思います。ある種のメモリ割り当ての制限に直面しているようです。それは、OPNET、Windows、私のラップトップメモリ、またはおそらくC言語に関係している可能性があります。この問題は、要素の総数が数千の整数になるネストされた配列を使用しようとすると発生します。全体的なメモリ割り当ての制限を超えていると思います。この上限を増やす方法があるかどうか疑問に思っています。正確な問題の説明は次のとおりです。
私は基本的にルーティングテーブルを持っています。これをrouting_tbl[n]と呼びましょう。これは、30ノード(ルーター)をサポートしていることを意味します。ここで、このテーブルの各ノードについて、情報を保持します。path [p]と呼ばれる配列内の、約数百(数百)の使用可能なパス。繰り返しますが、この配列の各パスについて、それに属するノードのリストをhops[h]という配列に保持します。したがって、少なくともnph整数に相当するメモリを使用していますが、このテーブルには他の情報も含まれています。同じ関数で、ほぼ40,000個の整数を消費する別のネストされた配列も使用しています。シミュレーションを実行するとすぐに、スタックオーバーフローについての文句を言うのをやめます。ルーティングテーブルの合計サイズを小さくすると機能します。何が問題を引き起こしていると思いますか、そしてそれをどのように解決することができますか?アリに感謝します
perl - Perlでハッシュが占有する物理メモリの量を見つける方法は?
ハッシュ テーブルを使用して非常に単純なキャッシュを維持する Perl スクリプトがあります。Perl (32 ビット) のメモリ不足とクラッシュを避けるために、ハッシュが n バイトを超えたらハッシュをクリアしたいと考えています。
キーと値のペアの数を確認できます。
しかし、ハッシュが占有する実際のメモリを確認することは可能ですか?
iphone - Objective-C でのメモリ管理
私は C/C++ のバックグラウンドを持っており、Objective-C の動的な性質は私には少しなじみがありません。Objective-C のいくつかの基本的なメモリ管理テクニックについて誰かが私に指摘できる良いリソースはありますか? 元。保持、解放、自動解放
たとえば、Objective-C オブジェクトへのポインターを使用してそれを配列として扱うことは完全に違法ですか? データ構造に NSArray と NSMutableArray を使用する必要がありますか?
私はこれらがかなり初心者の質問であることを知っています.あなたが私に提供できる助けに感謝します.
c - C ポインター代入動作
temp2
、temp1
いくつかの構造体 x へのポインターです。
さて、次の行の実行後:
...同じメモリ位置を指し続けますかtemp2
? temp1
そうでない場合は、なぜそれらが異なるのかを説明してください。
.net - .NET でのオブジェクト メモリの分析
.NET の各 DLL またはオブジェクトが消費するメモリ量を調べるツールまたは方法はありますか? 詳細に分析するほど、より良い分析が行われます。ありがとう。
linux - プロセスの「実際の」メモリ使用量、つまりプライベート ダーティ RSS を判断する方法はありますか?
「ps」や「top」などのツールは、VM サイズや常駐セット サイズなど、さまざまな種類のメモリ使用量を報告します。ただし、これらはどれも「実際の」メモリ使用量ではありません。
- プログラム コードは、同じプログラムの複数のインスタンス間で共有されます。
- 共有ライブラリ プログラム コードは、そのライブラリを使用するすべてのプロセス間で共有されます。
- 一部のアプリは、プロセスをフォークして、プロセスとメモリを共有します (たとえば、共有メモリ セグメントを介して)。
- 仮想メモリ システムにより、VM サイズ レポートはほとんど役に立たなくなります。
- プロセスがスワップ アウトされると RSS は 0 になるため、あまり役に立ちません。
- などなど
Linux によって報告されたプライベート ダーティ RSS が、「実際の」メモリ使用量に最も近いことがわかりました。Private_Dirty
これは、 のすべての値を合計することで取得できます/proc/somepid/smaps
。
しかし、他のオペレーティング システムは同様の機能を提供しますか? そうでない場合、代替手段は何ですか?特に、FreeBSD と OS X に興味があります。
unix - solarisのプロセスにメモリを事前に割り当てるにはどうすればよいですか?
私の問題は次のとおりです。
多くのメモリを使用する perl スクリプトがあります (キャッシュのために予想される動作)。しかし、キャッシングをすればするほど遅くなり、プロセスがほとんどの時間をスリープ モードで過ごすことに気付きました。
プロセスにメモリを事前に割り当てると、パフォーマンスが向上する可能性があると考えました。
誰かがここに何かアイデアを持っていますか?
更新:
ここではあまり明確ではないと思います。私はより明確な方法で質問をします:
perl スクリプト内で事前に割り当てる方法を探しているわけではありません。ここではあまり役に立たないと思います。私が興味を持っているのは、後で入ってくる他のプロセスと競合する必要がないように、OS に perl スクリプトに X 量のメモリを割り当てるように指示する方法です。
メモリ使用量を回避できないと仮定します。とはいえ、私もそれを減らす方法を模索していますが、そこに大きな改善は期待できません. 参考までに、私はsolaris 10マシンで作業しています。
linux - アプリケーションまたはプロセスの実際のメモリ使用量を測定するにはどうすればよいですか?
Linux でアプリケーションまたはプロセスのメモリ使用量をどのように測定しますか?
Linuxでのメモリ使用量についてのブログ記事から、ps
これはこの目的のために使用する正確なツールではありません。
なぜ
ps
「間違っている」のか見方によっては
ps
、プロセスの実際のメモリ使用量を報告していません。実際に行っていることは、実行中のプロセスが 1 つしかない場合に、各プロセスが実際にどれだけのメモリを消費するかを示すことです。もちろん、典型的な Linux マシンでは、常に数十のプロセスが実行されps
ています。
(注: この質問については、ここで詳しく説明します。)