JDK版本是热点8U_45
我研究了java进程的本地内存。本机内存甚至比堆占用更多的空间。然而,有许多本机内存块,这使我感到困惑。pmap-x的结果,例如:
00007f8128000000 65508 25204 25204 rw--- [ anon ]
00007f812bff9000 28 0 0 ----- [ anon ]
00007f812c000000 65508 24768 24768 rw--- [ anon ]
00007f812fff9000 28 0 0 ----- [ anon ]
00007f8130000000 65508 25532 25532 rw--- [ anon ]
00007f8133ff9000 28 0 0 ----- [ anon ]
00007f8134000000 65524 22764 22764 rw--- [ anon ]
00007f8137ffd000 12 0 0 ----- [ anon ]
00007f8138000000 65508 26456 26456 rw--- [ anon ]
00007f813bff9000 28 0 0 ----- [ anon ]
00007f813c000000 65508 23572 23572 rw--- [ anon ]
00007f813fff9000 28 0 0 ----- [ anon ]
00007f8140000000 65520 23208 23208 rw--- [ anon ]
00007f8143ffc000 16 0 0 ----- [ anon ]
00007f8144000000 65512 23164 23164 rw--- [ anon ]
00007f8147ffa000 24 0 0 ----- [ anon ]
00007f8148000000 65516 23416 23416 rw--- [ anon ]
00007f814bffb000 20 0 0 ----- [ anon ]
00007f814c000000 65508 23404 23404 rw--- [ anon ]
00007f814fff9000 28 0 0 ----- [ anon ]
00007f8150000000 65512 24620 24620 rw--- [ anon ]
00007f8153ffa000 24 0 0 ----- [ anon ]
00007f8154000000 65536 23976 23976 rw--- [ anon ]
00007f8158000000 65508 23652 23652 rw--- [ anon ]
00007f815bff9000 28 0 0 ----- [ anon ]
00007f815c000000 65508 23164 23164 rw--- [ anon ]
00007f815fff9000 28 0 0 ----- [ anon ]
00007f8160000000 65508 23344 23344 rw--- [ anon ]
00007f8163ff9000 28 0 0 ----- [ anon ]
00007f8164000000 65508 24052 24052 rw--- [ anon ]
00007f8167ff9000 28 0 0 ----- [ anon ]
00007f8168000000 131052 48608 48608 rw--- [ anon ]
00007f816fffb000 20 0 0 ----- [ anon ]
00007f8170000000 65516 23056 23056 rw--- [ anon ]
00007f8173ffb000 20 0 0 ----- [ anon ]
00007f8174000000 65516 26860 26860 rw--- [ anon ]
00007f8177ffb000 20 0 0 ----- [ anon ]
00007f8178000000 65508 23360 23360 rw--- [ anon ]
00007f817bff9000 28 0 0 ----- [ anon ]
00007f817c000000 65536 24856 24856 rw--- [ anon ]
00007f8180000000 65512 23272 23272 rw--- [ anon ]
00007f8183ffa000 24 0 0 ----- [ anon ]
00007f8184000000 65508 23688 23688 rw--- [ anon ]
00007f8187ff9000 28 0 0 ----- [ anon ]
00007f8188000000 65512 24024 24024 rw--- [ anon ]
00007f818bffa000 24 0 0 ----- [ anon ]
00007f818c000000 65508 25020 25020 rw--- [ anon ]
00007f818fff9000 28 0 0 ----- [ anon ]
00007f8190000000 65512 22868 22868 rw--- [ anon ]
00007f8193ffa000 24 0 0 ----- [ anon ]
00007f8194000000 65508 24156 24156 rw--- [ anon ]
00007f8197ff9000 28 0 0 ----- [ anon ]
00007f8198000000 65508 23684 23684 rw--- [ anon ]
有许多占地约64m的街区。
dump binary memory mem.bin from to
那么如何跟踪这些内存块的来源呢?
使用jemalloc
或tcmalloc
-它们都有内置的分配探查器,有助于识别分配的来源。
由于许多原因,Java进程可能会使用太多的本机内存。流行的原因是
unsafe.allocateMemory
ZipinputStream
)大家好,我有一个关于Java继承的具体问题。以下是我的代码 现在我的问题是,运行这个程序时,幕后到底发生了什么。 什么会遗传? 内存位置在哪里? 为什么第一个syso给4,第二个给5?(这一点我能在一定程度上理解,但澄清上述两个将有助于更清楚地理解它) 请引导
问题内容: 如果您运行的代码调用Java中的本机库,那么当内存分配应在对象的生存期内持续时,释放这些库分配的内存的常用方法是什么?在C ++中,我将使用析构函数,但是Java从来没有真正使用过析构函数,现在更少了。 我最感兴趣的特定情况是JOCL,其中有一个对象,该对象包装了已编译的OpenCL内核及其所有始终相同的参数。表示已编译内核和参数的结构都在库侧分配,JOCL提供了一种方法,您可以调用该
我刚刚尝试在Android 4.0设备上运行使用Java8编译的应用程序。虽然我习惯于非常小心地查看Android留档中的Android API级别,以确保我只使用Android 4.0上可用的API,但我不太习惯于确保我没有使用Android 4.0上不可用的Java功能。 考虑以下代码,它试图从视图类导入initializeScrollbars()API,因为无论出于何种原因,它已从官方SDK
问题内容: 在工作中,我们的目标平台之一是运行Linux的资源受限小型服务器(内核2.6.13,基于旧的Fedora Core的自定义发行版)。该应用程序是用Java(Sun JDK 1.6_04)编写的。Linux OOM杀手配置为在内存使用量超过160MB时杀死进程。即使在高负载下,我们的应用程序也永远不会超过120MB,并且与其他活动的本机进程一起,我们也始终保持在OOM限制内。 但是,事实
问题内容: 有什么工具可以知道我的Java应用程序已使用了多少个本机内存?我的应用程序内存不足:当前设置是:-Xmx900m 计算机,Windows 2003 Server 32位,RAM 4GB。 还在Windows上将boot.ini更改为/ 3GB,会有什么不同吗?如果设置为Xmx900m,则可以为此进程分配多少最大本机内存?是1100m吗? 问题答案: (就我而言,我使用的是Java 8)
我有一个从我的供应商products下载的文件。xml。我有一个脚本从这个文件中获取数据并将其放入csv文件中。 所以我正在看这个脚本,似乎有从xml中提取的数据,我在任何xml编辑器中都看不到。比如图像和类别。另一方面,我看到xml文件中的某些字段在应该放在csv中的时候没有放在csv中,比如产品名称。 除了添加产品名称和描述之外,它做的一切都是正确的。 这里是脚本将数据从xml抓取到数组中的地