问题标签 [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.

0 投票
4 回答
50915 浏览

java - 试图定位泄漏点!anon 对 pmap 意味着什么?

我试图找到我的记忆在 linux 中运行的 java 进程的去向。有人建议我使用 pmap -x 来查看内存在做什么。

输出真的很长,但基本上它的很大一部分是重复这个:

这到底是什么意思?为什么我有这么多(4000+)的条目?

0 投票
1 回答
2347 浏览

linux - 如何在 Linux/HPUX (pmap) 上获取内核的内存映射

在 solaris 上,我可以在核心文件上运行 pmap 命令以获取崩溃进程的内存映射。不幸的是,HPUX 和 Linux 上可用的 pmap 命令不提供此选项。任何指示我如何在这些平台上获取这些信息?

0 投票
1 回答
2010 浏览

linux - linux pmap输出中删除的段是什么?

以下是在 CentOS 5.2 上运行的进程中 pmap 的前几行输出:

共享库映射中的“(已删除)”是什么意思?

0 投票
4 回答
6146 浏览

concurrency - Clojure 的 pmap 函数为 URL 获取操作生成了多少线程?

pmap函数的文档让我想知道它对于通过 Web 获取 XML 提要集合之类的事情会有多高效。我不知道 pmap 会产生多少并发获取操作以及最大值是多少。

0 投票
1 回答
1044 浏览

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

感谢您阅读我的问题。请帮帮我。

0 投票
2 回答
646 浏览

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()scanf()它们都显示为我程序代码段的一部分,而不是libc-2.12.1.so

这是什么原因?提前致谢。

0 投票
1 回答
2144 浏览

memory - pmap的RSS和htop的RES一样吗?

我运行以下简单程序

htop给了这个

pmap -x给了这个

htoppmap显示相同的虚拟大小(36684),但它们显示物理内存的不同内容(htop's RES= 321 和pmap's RSS= 432)。

htop也许我混淆了一些东西,但'sRESpmap's之间有什么区别RSS吗?

0 投票
3 回答
1595 浏览

java - “共享对象内存”与“堆内存” - Java

Java中的“共享对象内存”和“堆内存”有什么区别。是否像“共享对象内存”是“堆内存”的超集?

这个问题的来源是 jmap 的文档。它提供了打印“共享对象内存”和“堆内存”的不同选项。

0 投票
1 回答
1065 浏览

c - 在 Solaris 中编写 pmap

我目前正在尝试编写自己的程序来反映 pmap 命令,特别是在 Solaris 9 上。我无法解析库的名称和路径。来自 bash shell 的 Solaris 命令的输出如下所示:

我可以通过阅读 /proc/$$/map 来复制程序的基本功能,但剩下的就是弄清楚如何解析库名称,如右侧所示。/proc/$$/map 仅给出 /proc/$$/object 中文件的名称,它们只是通用名称。在 Solaris 10(我有一个盒子)上,我似乎能够使用 /proc/$$/path,其中包含符号链接,但我正在处理的盒子没有这些。有人对如何获取这些库名称有任何直接的想法吗?当我捆绑程序时,它似乎打开 /proc/$$/as 并查看内存并以某种方式找到它们,但我还无法弄清楚它在哪里寻找或为什么。

0 投票
1 回答
2847 浏览

linux - 为什么我在 32 位和 64 位 Linux 上看到相同进程的 pmap 内存使用有很大差异?

我正在设置一个新服务器(64 位 Debian),并试图使 apache 进程尽可能小,禁用任何我不需要的模块。然后,我将 pmap 输出与 32 位 Debian 机器上的 apache 进行了比较,打开了更多模块。看到 64 位机器上的“优化”版本似乎消耗了更多内存,我感到非常惊讶。

pmap -d (只是摘要行)显示:

更仔细地查看输出。我看到 .so 库的内存分配存在差异。以libc为例...

64位:

32位:

所以不同的是64位输出中的第二行。对于 Mode="-----" 的分配,我找不到任何解释,每个 .so 似乎都有一个,并且大小始终为 2044 或 2048。

这与 64but 机器上的内存分配有关吗?与 32 位机器相比,每 GB RAM 获得的 procs 真的会少得多吗?