問題タブ [pmap]
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 - 漏れを見つけようとしています!pmapにとってanonはどういう意味ですか?
Linuxで実行されているJavaプロセスのメモリがどこにあるかを見つけようとしています。誰かが私がpmap-xを使用して、メモリが何をしているかを正確に確認することを提案しました。
出力は本当に長いですが、基本的にそれのかなりの部分はこれの繰り返しです:
これは正確にはどういう意味ですか?なぜこれほど多くのエントリ(4000以上)があるのですか?
linux - Linux / HPUXでコアのメモリマッピングを取得する方法(pmap)
ソラリスでは、コアファイルに対してpmapコマンドを実行して、クラッシュしたプロセスのメモリマップを取得できます。残念ながら、HPUXおよびLinuxで使用可能なpmapコマンドは、このオプションを提供していません。これらのプラットフォームでこの情報を取得する方法を教えてください。
linux - Linuxのpmap出力で削除されたセグメントとは何ですか?
CentOS5.2で実行されているプロセスのpmapからの出力の最初の数行は次のとおりです。
共有ライブラリマッピングで「(削除済み)」とはどういう意味ですか?
concurrency - Clojureのpmap関数はURLフェッチ操作のためにいくつのスレッドを生成しますか?
この関数のドキュメントではpmap
、Webを介してXMLフィードのコレクションをフェッチするようなものがどれほど効率的であるか疑問に思います。pmapが生成する同時フェッチ操作の数と、最大値はわかりません。
c - pmap の出力を正しく理解できませんでした
プロセス マップが次のようなスレッド用の単純な C プログラムを作成しました。
アーキテクチャが自己変更コードをサポートしない限り、コード セグメントは変更できないため、上記のマッピングから外れると、これはコード セグメントに違いないと思います。
08048000 4K r-x-- /home/anirudh/Documents/DUMP/a.out
これがデータ セグメントです。グローバル変数を宣言し、そのアドレスを確認したところ、次のセグメントのアドレス範囲にありました。
0804a000 4K rw--- /home/anirudh/Documents/DUMP/a.out
今、私は次のセグメントが何であるかを理解していません...それはコードですか、それともデータですか。
08049000 4K r---- /home/anirudh/Documents/DUMP/a.out
私の質問を読んでくれてありがとう。私を助けてください。
c - printf() 関数のアドレスとコードの pmap を出力しました... printf() のアドレスは、libc ではなくコード セグメントの一部であることが示されています
私のコードでは、printf() 関数のアドレスを出力しようとしました。
Address of the function "printf()" in HEX = 8048408
私はそのアドレスが
00250000 1372K r-x-- /lib/libc-2.12.1.so
08048000 4K r-x-- /home/anirudh/Documents/DUMP/a.out
そのコードがこのセクション、つまり私のコードのコードセグメントにある
ことを示すのではなく
。
getpid()
andのようなさらにいくつかの関数のアドレスを印刷しようとさえしましたscanf()
が、それらはすべて、プログラムのコードセグメントではなく、プログラムのコードセグメントの一部であることが示されましたlibc-2.12.1.so
この理由は何ですか。前もって感謝します。
memory - pmap の RSS と htop の RES は同じですか?
次の簡単なプログラムを実行します
htop
これを与える
pmap -x
これを与える
htop
とpmap
同じ仮想サイズ(36684)を示していますが、物理メモリについては異なるものを示しています(htop
's RES
= 321 およびpmap
's RSS
= 432)。
htop
多分私は何かを混同しますが、 'sRES
とpmap
's の間に何か違いはありますRSS
か?
java - 「共有オブジェクトメモリ」と「ヒープメモリ」 - Java
Javaの「共有オブジェクトメモリ」と「ヒープメモリ」の違いは何ですか? 「共有オブジェクトメモリ」は「ヒープメモリ」のスーパーセットのようなものですか?
この質問のソースは、jmap のドキュメントです。「共有オブジェクトメモリ」と「ヒープメモリ」を印刷するためのさまざまなオプションを提供します。
c - Solaris での pmap のコーディング
現在、特に Solaris 9 で、pmap コマンドをミラーリングする独自のプログラムを作成しようとしています。ライブラリの名前とパスを解決するのに問題があります。Solaris コマンドの出力は、bash シェルから次のようになります。
/proc/$$/map を読み取ることで、プログラムの基本機能をほぼ複製できますが、残っているのは、右側に示されているライブラリ名を解決する方法を見つけることです。/proc/$$/map は /proc/$$/object 内のファイルの名前のみを提供します。これは単なる一般的な名前です。Solaris 10 (私が持っているボックス) では、シンボリック リンクを含む /proc/$$/path を使用できるようですが、作業中のボックスにはこれらがありません。これらのライブラリ名を取得する方法について簡単なアイデアを持っている人はいますか? プログラムをトラスすると、 /proc/$$/as が開き、メモリを調べて何とか見つけたようですが、どこを見ているのか、その理由はまだわかりません。
linux - 32 ビットと 64 ビットの Linux で、同じプロセスに対して pmap を使用するとメモリ使用量に大きな違いが見られるのはなぜですか?
私は新しいサーバー (64 ビット Debian) をセットアップしていましたが、apache プロセスをできるだけ小さくしようとして、不要なモジュールを無効にしました。次に、より多くのモジュールがオンになっている 32 ビット Debian ボックスで、pmap の出力を apache と比較しました。64 ビット マシンで「最適化された」ものは、はるかに多くのメモリを消費しているように見えて、非常に驚きました。
pmap -d (要約行のみ) は以下を示します。
出力をさらに詳しく見ていきます。.so ライブラリのメモリ割り当てに違いがあります。libcを例にとると...
64 ビット:
32ビット:
したがって、違いは 64 ビット出力の 2 行目です。Mode="-----" を使用したこれらの割り当ての説明が見つかりません。すべての .so には 1 つあるようで、サイズは常に 2044 または 2048 です。
これは 64but マシンでのメモリ割り当てと関係がありますか? RAM 1 GB あたりの proc は、32 ビット マシンよりもかなり少なくなりますか?